redis队列,启用的count线进程配置是1,但同一个队列还是会2个任务2个任务同时消费,类似走了异步协程,有什么办法可以让队列任务串行吗,就是消费完了这个任务再消费下一个任务
这里写搜到的方案及不适用原因
同时向队列投递了2条消息
是的,我同时向队列投递了10个任务,但我开的是一个进程,我想要的是串行的去消费任务
你是怎么判断的 是否同时消费的?
你需要先看一下消费进程确定一下是否就是1个?
我在消费任务的地方,加了一个sleep(2);然后记录数据库,我添加了10个任务,如果是串行的,应该是每2秒1条数据,实际是每2秒2条数据
先看一下消费进程 是几个? 再看一下业务问题
Input "php start.php stop" to stop. Start success.
执行php start.php status截图看看
大佬,截图已经上传,麻烦大佬看看~感谢
把你队列process那个代码截图全 我估计是你的消费者目录重复了,有其他进程是这个进程消费者目录一样的
如果再不行 就是有僵尸进程
大佬,我找到问题了,确实目录的问题,但是我以为是一个目录下,多个文件应该没问题,毕竟是独立目录,我目录和配置传上去,以后别人有这个问题,可以参考。感谢大佬!!
同时向队列投递了2条消息
是的,我同时向队列投递了10个任务,但我开的是一个进程,我想要的是串行的去消费任务
你是怎么判断的 是否同时消费的?
你需要先看一下消费进程确定一下是否就是1个?
我在消费任务的地方,加了一个sleep(2);然后记录数据库,我添加了10个任务,如果是串行的,应该是每2秒1条数据,实际是每2秒2条数据
先看一下消费进程 是几个? 再看一下业务问题
消费进程1个,我设置的是1个,而且启动的时候,也看得到是1个。
event-loop proto user worker listen count state
select tcp root webman http://0.0.0.0:8787 16 [OK]
select tcp root monitor none 1 [OK]
select tcp root plugin.webman.redis-queue.single1_consumer none 1 [OK]
Input "php start.php stop" to stop. Start success.
执行php start.php status截图看看
大佬,截图已经上传,麻烦大佬看看~感谢
把你队列process那个代码截图全 我估计是你的消费者目录重复了,有其他进程是这个进程消费者目录一样的
如果再不行 就是有僵尸进程
大佬,我找到问题了,确实目录的问题,但是我以为是一个目录下,多个文件应该没问题,毕竟是独立目录,我目录和配置传上去,以后别人有这个问题,可以参考。感谢大佬!!