laravel - 如何从同一服务器运行不同的 Beanstalkd Laravel 队列?
问题描述
我在同一台服务器上有两个不同的 Laravel 队列。在我的 Supervisord.d 文件夹中,我有两个用于这些队列的 ini 文件。队列中的作业名称不同。但是,每次我运行一项工作并期望一个队列的结果时,其他队列也会干扰。这是 ini 文件的示例:
[program:queue_runner]
command = php /path_to_prod/artisan queue:work --daemon --queue=default,smsInt,smsIntLow --tries=1 --timeout=30
stdout_logfile = /path_to_prod/storage/logs/supervisor.log
redirect_stderr = true
numprocs = 5
process_name = %(program_name)s%(process_num)s
[program:queue_runner_test]
command = php /path_to_test/artisan queue:work --daemon --queue=default,smsIntTest,smsIntTestLow --tries=1 --timeout=30
stdout_logfile = /path_to_test/storage/logs/supervisor.log
redirect_stderr = true
numprocs = 50
process_name = %(program_name)s%(process_num)s
你能帮我解决它吗。
解决方案
找到了我的问题的解决方案。尽管作业从一开始就从 smsIntTest 上的测试站点和 smsInt 队列上的其他站点发送。但是,他们每次都被错误的队列接走。
正如以下帖子所建议的,为什么 Laravel 或 Beanstalkd 会跳过工作?
我在 app/config/queue.php 文件的 'connections' 数组中为一个站点分配了 'queue' => 'smsInt',为另一个站点分配了 'queue' => 'smsIntTest'。这个解决方案解决了这个问题。
推荐阅读
- php - 注意:使用未定义的常量 - 假定 ' ' in
- mysql - 在 PHPMyAdmin 中添加索引时 size 有什么作用?
- php - 在插入查询中如何使用另一个表中的 id 值
- ruby - 如何使用 ruby 将命令及其参数以字符串格式分离出来
- java - 如何使用 OkHttp3 Post 请求为 android 制作单元测试代码?
- python - 带有(**)的return语句的目的是什么
- javascript - 如何在AngularJS组件中导入带有函数的外部js文件
- postgresql - 如何限制 pg_dump 的内存使用?
- c# - 调整图像大小,重叠像素问题
- jquery - 将当前 CSS 值保留在变量中而不更改