首页 » php

php之任务队列

   发表于:php评论 (0)   热度:2326

例如:邮件队列、任务队列、消息队列、Feed队列
用户注册成功,而不是直接给用户发送email,而是把新注册的用户的email插入到邮件任务队列中。由服务器给用户发送邮件。发送成功或发送N次失败的将从队列中清除。

 

如果是普通的网站,如平均每秒产生的队列消息不超过上百,则用低成本数据库+轮询程序,完全可行.
具体思路如下:

1. 当产生消息时,使用MySQL的表保存产生的新队列消息,并记录一些运行参数
2. 服务器上开启cron(Linux),或开启自动刷新的浏览器窗口(Windows),比如按半分钟运行一次轮询程序
3. 这些轮询程序每次取出一些队列消息,进行处理,处理成功或是处理失败N次后,删除MySQL队列表中的相关记录

如此反复,即可实现.我觉得这个方式的优点是:
1. 实现最为容易,可行性最好
2. 低成本的开发或是平台部署成本 

在我们的生产环境中,这种方式得到了大量实践,表现良好.

(。・v・。)
喜欢这篇文章吗?欢迎分享到你的微博、QQ群,并关注我们的微博,谢谢支持。