Home  >  Article  >  Backend Development  >  求好用的支持php、延时任务的队列服务

求好用的支持php、延时任务的队列服务

WBOY
WBOYOriginal
2016-06-06 20:51:541028browse

参照SAE的TaskQueue: http://sae.sina.com.cn/?m=devcenter&a...

自己在VPS上用,要支持延时任务,有没有开源的解决方案

回复内容:

参照SAE的TaskQueue: http://sae.sina.com.cn/?m=devcenter&a...

自己在VPS上用,要支持延时任务,有没有开源的解决方案

beanstalkd,前提是你需要的是轻量好用的,并发的话,拿daemontools多开几个队列进程自己控制progress数量即可。

phpredis的pub/sub应该也是可以用的,只是我之前的测试中队列经常自己莫名崩溃掉,所以感觉还是beanstalkd靠谱点。
官方网站:http://kr.github.com/beanstalkd/
client端的libraries很多,但和php的不推荐c的那个版本,不是很稳定。
https://github.com/pda/pheanstalk/ 这个版本比较安全稳定点,不过多服务器的话需要你自己写点路由管理,个人vps的话上手就用了。
淘宝有介绍过:
http://rdc.taobao.com/blog/cs/?p=1201

另外beanstalkd是支持持久化的,不过一般而言没什么必要而已。

我曾经见过一个开源项目(没有使用过),叫Q4M,Queue for MySQL,日本著名社交网站mixi和DeNA在用,钓鱼岛是中国的。

优点是学习成本非常低,直接使用mysql来存储,使用SQL来访问,对PHP程序员来说,就好像新学了一种JOIN语法一样。

网站:http://q4m.github.com/

开源的消息队列多如牛毛。
轻量简单的可以用redis的pub/sub,客户端可以用phpredis
或者稍微复杂点就用RabbitMQ,支持AMQP协议,PHP有个pecl-amqp扩展。

我们现在用的是beanstalkd

真心觉得HTTPSQS不错

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn