从Web应用程序在后台处理作业

Ste*_*ano 8 php resque sidekiq

我想在Web应用程序执行期间在后台安排并运行大量作业.
Web应用程序构建在Symfony 2和Doctrine 2之上.

我知道可以使用像Resque或Sidekiq这样的库来完成作业处理.但是,这些库和我的应用程序是用不同的语言编写的,所以我想知道如何运行用Ruby编写的Sidekiq作业,它应该与我用PHP编写的应用程序集成.

我问自己的是,如果唯一的方法是重写大量的代码来查询数据库从PHP到ruby,以便能够在Sidekiq/Resque中执行作业.

Mic*_* S. 6

你看过Gearman了吗?它可以像Sidekiq一样运行后台作业,但它与语言无关.例如,您可以将PHP用于所有内容,或者您​​可以使用PHP排队作业并使用Ruby编写实际的工作程序.


mcf*_*edr 6

我使用https://github.com/chrisboulton/php-resquehttps://github.com/chrisboulton/php-resque-scheduler在几个项目中使用了Resque

它的工作非常好,我甚至制作了一个Symfony软件包,以便轻松使用它.https://github.com/mcfedr/resque-bundle - 支持后台作业和预定作业.比使用cron更强大.

选择Resque而非其他选项的主要原因是它适用于Redis,易于部署和扩展.在AWS上,我使用Elasticache托管实例进行完全无忧的设置.