使用beanstalkd进行PHP异步处理.你推荐它吗?

And*_*eas 13 php asynchronous beanstalkd

你会推荐使用beanstalkd [ http://kr.github.com/beanstalkd/ ] 吗?

PHP中的异步处理?

我需要一些使用过这个库的反馈/评论的优点.

谢谢,

Ali*_*man 15

我在生产过程中使用过Beanstalk,同时测试时通过它投入了数以百万计的简单信息 - 通常是大量的,但生产系统有超过100,000个任务通过它直到我离开公司.它可能仍然在运行,在这种情况下,如果他们按照我的计划进一步扩展它的使用,它现在将是数千万甚至更多.

我会推荐它,因为它有很多优点.

  • 命名管可用于限制正在交付的作业.我根据机器主机名观察管道,这限制了工作人员在哪里运行 - 对于仅存储在特定服务器上的上传文件很有用.
  • 延迟可用于设置未来事件
  • 最新版本的服务器也支持bin-logging,给予持久性,尽管它从未在我身上崩溃过.

我通过它完成的第一项任务是图像处理 - 在Apache/mod_php进程之外执行该工作允许我调整大图像的大小而不影响服务器(吹掉Web服务器).使用轻载队列,它在上传后刷新页面之前创建了缩略图.

还有许多其他潜在的任务也可以异步处理.

我遇到的唯一问题是确保工人完成而没有发生任何事故 - 或者发现任何错误,以便工作可以被'埋葬',从而确保工作没有被重新排入队列再次运行(并让工人再次崩溃).

让工作人员重新启动以清除内存也很有用,因为PHP不太适合长时间运行的进程.