Jobs processing in background from web application

一个人想着一个人 提交于 2019-12-09 06:09:16

问题


I want to schedule and run a lot of jobs in the background during a web application execution.
The web app is built on top of Symfony 2 and Doctrine 2.

I know the job-processing can be done with libraries like Resque or Sidekiq. However, these libraries and my application are written in different languages, so I am wondering how I can run Sidekiq jobs written in Ruby which should integrate with my app written in PHP.

What I'm asking myself is if the only way to do this is rewriting a large amount of code to query the database from PHP to ruby, to be able to execute the job in Sidekiq/Resque.


回答1:


Have you taken a look at Gearman? It lets you run background jobs just like Sidekiq, but it's language agnostic. For example, you can use PHP for everything, or you can queue up jobs in PHP and have the actual workers written in Ruby.




回答2:


I have made use of Resque in several projects using https://github.com/chrisboulton/php-resque and https://github.com/chrisboulton/php-resque-scheduler

Its been working really well, I even made a Symfony bundle to make working with it really easy. https://github.com/mcfedr/resque-bundle - supports background jobs and scheduled jobs. Much more powerful than using cron.

The main reason for choosing Resque over other options is that it works on Redis, which is easy to deploy and scale. On AWS I use Elasticache managed instances for a completely hassle free setup.



来源:https://stackoverflow.com/questions/21313028/jobs-processing-in-background-from-web-application

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!