Laravel Larvel队列作业多次运行同一作业
我试图看到Laravel队列工作,但遇到了一些问题 所以我添加了一个测试作业Laravel Larvel队列作业多次运行同一作业,laravel,Laravel,我试图看到Laravel队列工作,但遇到了一些问题 所以我添加了一个测试作业 protected function schedule(Schedule $schedule) { $schedule->job(new TestJob)->everyMinute(); } 职业课什么都不做,只是一个测试 class TestJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueab
protected function schedule(Schedule $schedule)
{
$schedule->job(new TestJob)->everyMinute();
}
职业课什么都不做,只是一个测试
class TestJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function __construct()
{
//
}
public function handle()
{
//
}
}
正如docs所说,将cron添加到服务器
* * * * * cd /home/ec2-user/myproject-prod && php artisan schedule:run >> /dev/null 2>&1
最后,添加了主管和工人
[program:myproject-queue]
process_name=%(program_name)s_%(process_num)02d
command=php /home/ec2-user/myproject-prod/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=ec2-user
numprocs=1
redirect_stderr=true
stdout_logfile=/home/ec2-user/supervisor-myproject-prod.log
因此,正如下面的loge所示,在同一秒中,您可以看到同一个作业多次运行
有时同一个作业运行一次(正确),很多时候运行两次,少数时候运行4次
[2019-11-14 08:25:02][5537] Processing: App\Jobs\TestJob
[2019-11-14 08:25:02][5537] Processed: App\Jobs\TestJob
[2019-11-14 08:25:05][5538] Processing: App\Jobs\TestJob
[2019-11-14 08:25:05][5538] Processed: App\Jobs\TestJob
[2019-11-14 08:26:03][5539] Processing: App\Jobs\TestJob
[2019-11-14 08:26:03][5539] Processed: App\Jobs\TestJob
[2019-11-14 08:26:06][5540] Processing: App\Jobs\TestJob
[2019-11-14 08:26:06][5540] Processed: App\Jobs\TestJob
[2019-11-14 08:27:03][5541] Processing: App\Jobs\TestJob
[2019-11-14 08:27:03][5541] Processed: App\Jobs\TestJob
[2019-11-14 08:27:06][5542] Processing: App\Jobs\TestJob
[2019-11-14 08:27:06][5542] Processed: App\Jobs\TestJob
是在supervisor中运行8个进程之前,所以我改为1并遇到了相同的问题
停止我在MySQL作业队列中看到的worker看起来是正确的,每分钟添加一个作业
所以这看起来像是工人之间的冲突
对吗?我做错什么了吗
Laravel task scheduler准备好生产数千个作业了吗?试试看
php artisan queue:work --tries=1
似乎没有任何失败的作业,因此这不会改变行为。运行4分钟,到目前为止是正确的。我将保持它运行,并检查作业执行时是否正确填写了
available\u at
字段?@Jerodev是的,每个作业在字段有一分钟的available\u