pab*_*rsk 1 continuous-deployment laravel
当我们有一个工作实例时,我们可以运行以下命令:
php artisan queue:work --queue=default --daemon --tries=5
Run Code Online (Sandbox Code Playgroud)
里斯?然后,如果我们已经运行了先前的命令,是否有必要将其添加schedule:run到cron作业中?
php artisan schedule:run >> /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
这两个命令都是必需的吗?还是一个?
这两个命令完全不同,并且执行两项完全不同的操作。
artisan queue:work 为您的异步作业和事件侦听器启动队列工作器,以便在分派时在后台运行。 在指定的时间
artisan schedule:run 执行Console\Kernel schedule功能中定义的命令(这就是CRON的意思)
例子
1- queue:work
给定这样的工作类别
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class LogStuff implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
info('stuff');
}
}
Run Code Online (Sandbox Code Playgroud)
这样的路线可以分派工作
routes/web.php
use App\Jobs\LogStuff;
Route::get('/', function () {
dispatch(new LogStuff());
return view('welcome');
});
Run Code Online (Sandbox Code Playgroud)
而QUEUE_CONNECTION在.env这样的
QUEUE_CONNECTION=redis
Run Code Online (Sandbox Code Playgroud)
在运行php artisan queue:work命令之前,不会记录任何内容

由于两次未运行队列工作程序的调度都会将作业添加到队列中(例如,在redis中)
2-计划的命令
鉴于所述的在计划的命令App\Console\Kernel 是这样
use App\Jobs\LogStuff;
Route::get('/', function () {
dispatch(new LogStuff());
return view('welcome');
});
Run Code Online (Sandbox Code Playgroud)
在执行php artisan schedule:run之前,什么都不会输出到控制台
我希望这足够清楚
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |