我使用了排队方法,它可以很好地工作,因为您可以将处理推迟到服务器负载空闲之前,如果可以轻松地划分“不紧急的任务”,就可以非常有效地管理负载。
自己滚动不是很棘手,以下是一些其他可供选择的选项:
- GearMan-该答案写于2009年,从那时起,GearMan似乎是一个受欢迎的选择,请参阅下面的评论。
- 如果您想要完整的开源消息队列,请使用ActiveMQ。
- ZeroMQ-这是一个非常酷的套接字库,可以轻松编写分布式代码,而不必太担心套接字编程本身。您可以将其用于单个主机上的消息队列-您只需将Web应用程序推送到队列中,然后连续运行的控制台应用程序将在下一个合适的时机使用该队列
- beanstalkd-仅在编写此答案时找到了这个,但看起来很有趣
- dropr]是一个基于PHP的消息队列项目,但是自2010年9月以来一直没有得到积极维护
- php-enqueue是最近(2017年)维护的各种队列系统包装器
- 最后,有关使用memcached进行消息排队
另一种也许更简单的方法是使用ignore_user_abort-将页面发送给用户后,您可以进行最终处理而不必担心过早终止,尽管这样做的确会延长用户页面的加载时间透视。



