gpt4 book ai didi

php - Laravel 5.2 队列 - 延迟不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:05 25 4
gpt4 key购买 nike

我需要你的帮助。

我正在使用 Laravel 队列和 Linux 主管工具(与文档完全一样)

现在我有一个非常奇怪的问题。

当我毫不拖延地使用这个命令时

$job = (new SendAutoresponderEmail($poptin,$autoresponder,$data));

它工作正常。

但是当我使用延迟选项时

$job = (new SendAutoresponderEmail($poptin,$autoresponder,$data))->delay(60);

作业失败,不再继续

我可以在我的失败作业表中看到该作业。

现在...当我不使用 supervisor 工具而只是在我的终端中运行命令时:

php artisan queue:listen

带有延迟选项的命令和其他队列任务工作正常。

这是我的 larave-worker 内容:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/Poptin/artisan queue:work database --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=ubuntu
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/html/<project>/worker.log

您认为我需要做什么才能修复它?

另外...我如何为不同的作业使用不同的队列?像那样

$job = (new SendAutoresponderEmail($poptin,$autoresponder,$data))->onQueue('autoresponder')->delay(60);

?

目前,我只有默认队列。在我的 config/queue.php 文件中我在哪里声明其他队列?

'connections' => [

'sync' => [
'driver' => 'sync',
],

'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'expire' => 60,
],

最佳答案

dispatch 你的工作

$job = (new SendAutoresponderEmail($poptin,$autoresponder,$data))->delay(60);
$this->dispatch($job);

关于php - Laravel 5.2 队列 - 延迟不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51647473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com