当我们有一个工作实例时,我们可以运行以下命令:
php artisan queue:work --queue=default --daemon --tries=5
里斯?然后,如果我们已经运行了先前的命令,是否有必要将其添加schedule:run
到cron作业中?
php artisan schedule:run >> /dev/null 2>&1
这两个命令都是必需的吗?还是一个?
这两个命令完全不同,并且执行两项完全不同的操作。
artisan queue:work
为您的异步作业和事件侦听器启动队列工作器,以便在分派时在后台运行。 在指定的时间
artisan schedule:run
执行Console\Kernel
schedule
功能中定义的命令(这就是CRON的意思)
例子
1- queue:work
给定这样的工作类别
这样的路线可以分派工作
routes/web.php
use App\Jobs\LogStuff;
Route::get('/', function () {
dispatch(new LogStuff());
return view('welcome');
});
而QUEUE_CONNECTION
在.env
这样的
QUEUE_CONNECTION=redis
在运行php artisan queue:work命令之前,不会记录任何内容
由于两次未运行队列工作程序的调度都会将作业添加到队列中(例如,在redis中)
2-计划的命令
鉴于所述的在计划的命令App\Console\Kernel
是这样
use App\Jobs\LogStuff;
Route::get('/', function () {
dispatch(new LogStuff());
return view('welcome');
});
在执行php artisan schedule:run之前,什么都不会输出到控制台
1分钟后
我希望这足够清楚