gpt4 book ai didi

Laravel 通知作业由主管多次运行

转载 作者:行者123 更新时间:2023-12-04 19:33:50 26 4
gpt4 key购买 nike

所以我有一个在生产中运行的 laravel 项目,并使用主管来处理工作和通知。

问题是,supervisor运行几个小时后,它开始发送重复通知,并且似乎运行时间越长,发送通知的次数越多(发生相同通知发送4次的情况) .

我的通知如下所示:

class MessageNotification extends Notification implements ShouldQueue
{
use Queueable;

public function __construct($opts = [])
{
$this->connection = 'database';
$this->queue = 'sendMail';
}

public function via($notifiable)
{
return ['mail', 'database', 'broadcast'];
}

public function toMail($notifiable)
{
$mesg = (new MailMessage)
// ... defining message stuff

return $mesg;
}

public function toArray($notifiable)
{
return [
// .. defining array stuff
];
}

public function toBroadcast($notifiable){
return (new BroadcastMessage($this->toArray($notifiable)));
}
}

我的队列配置如下所示:
return [
'default' => env('QUEUE_CONNECTION', 'sync'),

'connections' => [

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

'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'sendMail',
'retry_after' => 90,
],
],


'failed' => [
'database' => env('DB_CONNECTION', 'mysql'),
'table' => 'failed_jobs',
],

];

我的主管配置如下:
[program:laravel-worker]
command=php /app/artisan queue:work database --queue=sendMail --sleep=3 --tries=3 --timeout=75
process_name=%(program_name)s_%(process_num)02d
numprocs=8
priority=999
autostart=true
autorestart=true
startsecs=1
startretries=3
user=yastechco
redirect_stderr=true
stdout_logfile=/app/worker.log

这不会发生在我的本地机器上的开发中。

如果重要的话,生产服务器在 CentOS 7.6.1810 和 Supervisord 3.1.4 上运行

最佳答案

我最终将 redis 配置为我的队列适配器,它似乎已经解决了这个问题

关于Laravel 通知作业由主管多次运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57314572/

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