【发布时间】:2014-12-02 16:17:15
【问题描述】:
我想在 Web 应用程序执行期间在后台安排和运行大量作业。
该网络应用程序建立在 Symfony 2 和 Doctrine 2 之上。
我知道可以使用 Resque 或 Sidekiq 等库来完成作业处理。 但是,这些库和我的应用程序是用不同的语言编写的,所以我想知道如何运行用 Ruby 编写的 Sidekiq 作业,它应该与我用 PHP 编写的应用程序集成。
我问自己是否唯一的方法是重写大量代码以从 PHP 到 ruby 查询数据库,以便能够在 Sidekiq/Resque 中执行工作。
【问题讨论】:
-
你考虑过php解决方案吗?
-
我考虑过在 cmd 中运行带有简单无限循环的 PHP 脚本,但我认为这不是最合适的解决方案。 @Piotr 我会看看你链接我的项目,看起来很有趣,但我想知道表演
-
这取决于你的项目有多大。如果它不是很大,那么您可以使用无限循环并从 DB 中读取队列,我知道一个这样的内部解决方案,即使对于大公司来说它也能正常工作。如果您不需要队列优先级,多个工作人员等“无限循环”和检查无限循环是否仍在工作的看门狗应该没问题
-
我的应用程序没有facebook那么大,但让我害怕的是每分钟都会有很多对数据库的查询,然后我必须发送向浏览器和电子邮件发送通知,因此必须可靠且快速地处理作业