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

时间:2014-01-23 15:49:50

标签: php resque sidekiq

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

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

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

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分: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托管实例进行完全无忧的设置。