Laravel Horizon在Redis上处理mailcoach反馈很慢(每分钟1个作业)



我在Laravel上有Mailcoach 2。

我使用一个$5/月的数字海洋服务器与1 vCPU和1 GB RAM。

但我认为它处理这些相同的任务比过去快很多倍

我已经尝试重新启动Supervisor/Horizon.

我已经尝试将分配给mailcoach-feedback队列的进程数增加到10。

CPU使用率似乎为100%,RAM使用率约为80%。

我应该调查一下为什么现在这么慢?谢谢。

注:ps -eo pid,lstart,cmd | grep timeout显示了一堆行,如:

/usr/bin/php7.4 artisan horizon:work redis --delay=0 --memory=128 --queue=default --sleep=3 --timeout=60 --tries=1 --supervisor=ubuntu-s-1vcpu
/usr/bin/php7.4 artisan horizon:work mailcoach-redis --delay=0 --memory=128 --queue=mailcoach-feedback --sleep=3 --timeout=600 --tries=1 --supervisor=ubuntu-s-1vcpu

更新:

然后我在MySQL:SHOW FULL PROCESSLIST;中运行,这使我看到

SELECT 
MIN(`id`) AS aggregate
FROM
`webhook_calls`
WHERE
JSON_UNQUOTE(JSON_EXTRACT(`payload`, '$."MessageId"'))

每次耗时约13秒。

所以也许Mailcoach设计得不是很好(或者我设置错了)?

如果你有关于从这里探索什么或如何修复的想法,我将不胜感激。

虽然我还没有诊断出问题的根本原因,但我认为人们会很高兴知道问题不再发生了。

我从PHP 7升级到PHP 8,从Laravel 7升级到Laravel 8,从Mailcoach 2升级到Mailcoach 4。

也许这些升级(或与它们一起需要的其他升级)"解决了";问题在某种程度上。

最新更新