1

Laravel スケジュールを使用して cron ジョブを実行しています。

私のcrontabに追加しました(プロジェクトへの正しいパスを使用):

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

今私の App\Console\Kernel.php は次のようになります:

protected function schedule(Schedule $schedule)
{
        $schedule->command('investments:calculate_interests')->everyMinute();
        $schedule->call('\App\Http\Controllers\UsersController@testEvent')->everyMinute();
}

そのように使用すると、毎分ジョブを正常に実行できます。しかし、10 秒、20 秒、または 30 秒ごとに実行するように変更するにはどうすればよいでしょうか。

4

2 に答える 2

4

私はこのコードでそれを解決しました:

public function handle()
{
    $count = 0;
    while ($count < 59) {
        $startTime =  Carbon::now();

        $this->travelsRequestsDriversRepository->beFreeRequestAfterTime();

        $endTime = Carbon::now();
        $totalDuration = $endTime->diffInSeconds($startTime);
        if($totalDuration > 0) {
            $count +=  $totalDuration;
        }
        else {
            $count++;
        }
        sleep(1);
    }


}

そしてcronテーブルにこれのコマンドを追加します。

* * * * * /usr/local/php56/bin/php56 /home/hamshahr/domains/hamshahrapp.com/project/artisan taxis:beFreeTaxis 1>> /dev/null 2>&1
于 2018-02-16T10:32:20.383 に答える