PHP 监控 redis 任务队列有什么方案吗

2016-02-24 14:22:05 +08:00
 odoooo

放入队列 LPUSH chuli:duilie [shellcode]

取出一个并执行并执行取出内容。 RPOP chuli:duilie

我想通过 php 来实时监控 chuli:duilie 这个对联,如果发现队列中有内容就去 exec 执行。请问有没有什么办法实现。

谢谢各位。我现在的做法是再执行结束后,做一个查询,但是感觉这样不太好。

2970 次点击
所在节点    问与答
7 条回复
holyghost
2016-02-24 14:27:33 +08:00
php-resque 已经完成了你说的这些功能了。

要么直接拿来用,要么就去参考下。
odoooo
2016-02-24 14:42:31 +08:00
@holyghost 十分感谢,马上看
lecher
2016-02-24 15:15:26 +08:00
自己写也可以,很容易定制, crontab 开一个定时任务,调用 shell 命令定时检测进程是否启动,没有就启动。
启动的进程去循环取 Redis 数据之后调用函数执行。

应该在两百行代码左右的功能。
haython
2016-02-24 15:30:37 +08:00
blpop, brpop 这两个命令是阻塞的,直到有数据
GTim
2016-02-24 15:43:28 +08:00
@haython 赞同,你唯一要做的就是防止长链接自己断了
shiny
2016-02-24 15:45:56 +08:00
brpop 需要注意的地方是小心处理速度跟不上插入队列的速度,然后内存耗尽 game over
odoooo
2016-02-24 17:25:00 +08:00
@shiny
@haython
@GTim
谢谢,刚刚看了 Beanstalk 和 gearman 也有持久化队列功能,正在研究中。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/258735

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX