你会推荐使用 beanstalkd [ http://kr.github.com/beanstalkd/ ]
PHP中的异步处理?
我需要一些使用过这个库的人的反馈/评论利弊。
谢谢,
我在生产中使用过 Beanstalk,并且在测试时通过它抛出了数百万条简单的消息——通常是大量的,但是在我离开公司之前,生产系统已经完成了超过 100,000 个任务。它可能仍在运行,在这种情况下,现在将达到数千万——或者更多,如果他们按照我的计划进一步扩大了它的使用范围。
我会推荐它,因为它有很多优点。
我完成的第一项任务是图像处理——在 Apache/mod_php 进程之外进行这项工作使我能够调整更大的图像而不影响服务器(炸毁网络服务器)。对于轻载队列,它在上传后刷新页面之前创建了缩略图。
还有许多其他潜在的任务也可以异步处理。
我曾经遇到的唯一问题是确保工作人员顺利完成 - 或者任何错误都被捕获以便可以“隐藏”作业,从而确保作业不会被放回队列以再次运行(并让工人再次崩溃)。
让工作人员也重新启动以清除内存也很有用,因为 PHP 不太适合长时间运行的进程。