【问题标题】:laravel queue job running same job multiple timeslaravel 队列作业多次运行同一个作业
【发布时间】:2019-11-14 10:47:11
【问题描述】:

我正在尝试查看 Laravel Queue 是否正常工作,但遇到了一些问题。

所以我添加了一个 testJob

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()
    {
        //
    }
}

正如文档所说,将 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

因此,如下图所示,在同一秒内,您可以看到同一作业多次运行。

有时同一个作业运行一次(正确),很多时候运行两次,有几次运行 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 作业队列中看到的工作人员看起来是正确的,每分钟添加一个作业。

所以看起来像是工人的冲突。

正确吗?我做错了吗?

Laravel 任务调度器是否已准备好用于具有数千个作业的生产环境?

【问题讨论】:

  • 作业执行时available_at字段是否填写正确?
  • @Jerodev 是的,每个作业都有一分钟 available_at 字段

标签: laravel


【解决方案1】:

试试..

php artisan queue:work --tries=1

【讨论】:

  • 似乎没有任何失败的作业,所以这不应该改变行为。
  • 运行了 4 分钟,到目前为止是正确的。我会继续运行并检查
猜你喜欢
  • 1970-01-01
  • 2020-04-21
  • 2011-01-16
  • 2017-12-02
  • 2017-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-22
相关资源
最近更新 更多