laravel - 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()
?
解决方案
该job()
方法专门用于将 Laravel作业(即实现Illuminate\Contracts\Queue\ShouldQueue
接口的类)添加到队列中。虽然该方法将在预定时间同步call()
运行一个Closure
或一个可调用对象 ,但该方法将在预定时间将给定作业添加到队列中。然后,队列工作人员将在到达队列的最前面时处理该作业,这可能不是立即的。job()
然后$schedule->job(new Heartbeat)->everyFiveMinutes();
基本上是一个快捷方式:
$schedule->call(function () {
Heartbeat::dispatch();
})->everyFiveMinutes();
推荐阅读
- angular - 永远不要改变另一个组件的值
- mysql - 如果我定义一个卷,Docker-compose 将不会启动 MySQL
- excel - 找到具有特定值的单元格,如何引用该单元格以在整个列中搜索另一个值
- amazon-web-services - 为什么我不能在 AWS Batch C++ SDK 中覆盖多节点并行作业的容器变量?
- excel - Excel 显示不正确的多项式趋势线函数
- angular - 获取类的属性类型
- postgresql - 如何修复 \copy 中“TO”处的语法错误?
- java - 找不到在其他 java 文件中声明的方法
- batch-file - BAT 多个 For 循环以进一步过滤结果
- php - 如何在 Ubuntu 18.04 上为 Postgres 启用 php pdo 驱动程序