时间:2021-07-01 10:21:17 帮助过:4人阅读
自己在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不错