首页 > 解决方案 > Laravel:schedule->call()->daily() 有什么区别?和 schedule->job()->daily()?

问题描述

如果我打电话会有什么变化

schedule->call(function() { .. do something ... })->daily()

如果我打电话

schedule->job(... my job class where handle do the same things... )->daily() 

?

标签: laravel

解决方案


job()方法专门用于将 Laravel作业(即实现Illuminate\Contracts\Queue\ShouldQueue接口的类)添加到队列中。虽然该方法将在预定时间同步call()运行一个Closure或一个可调用对象 ,但该方法将在预定时间将给定作业添加到队列中。然后,队列工作人员将在到达队列的最前面时处理该作业,这可能不是立即的。job()

然后$schedule->job(new Heartbeat)->everyFiveMinutes();基本上是一个快捷方式:

$schedule->call(function () {
    Heartbeat::dispatch();
})->everyFiveMinutes();

推荐阅读