Php

laravel schedule run every second

<?php

declare(strict_types=1);

namespace App\Console;

class Kernel extends ConsoleKernel
{
    /**
     * Define the application's command schedule.
     */
    protected function schedule(Schedule $schedule): void
    {
        // Run call every second
        $schedule->call(static function (int $seconds) use ($schedule) {
            $dt = Carbon::now();
            $x = 60 / $seconds;

            do {
                app('log')->debug('Run call with params:', ['seconds' => $seconds]);

                $schedule->command(YourCommand::class, ['--force', '--param', 123])->withoutOverlapping(1);

                time_sleep_until((float) $dt->addSeconds($seconds)->timestamp);
            } while ($x-- > 0);
        }, ['seconds' => 1])->everyMinute();
    }
}

refs #

https://laracasts.com/discuss/channels/laravel/how-to-run-scheduling-every-2-sec

имитация сетевых проблем

Только дурак нуждается в порядке — гений господствует над хаосом

Albert Einstein

Когда мы разрабатываем приложение, мы хотим, чтобы оно было стабильным и надежным. Но как мы можем быть уверены, что наше приложение справится со сбоями, которые могут возникнуть во внешних сервисах, от которых оно зависит? В этом случае нам может помочь инструмент под названием Toxiproxy.

toxiproxy

Toxiproxy - это инструмент, который позволяет имитировать различные виды сбоев и ошибок во внешних сервисах, чтобы убедиться, что наше приложение правильно обрабатывает эти ситуации. Мы можем использовать Toxiproxy для тестирования наших приложений на всех этапах разработки и убедиться в их надежности и стабильности.