我在其中一个处理延迟作业的应用程序中有一个要求。我正在使用单个数据库运行两个应用程序。
在这里,我遇到了一个问题,即调用特定于域的延迟作业。
例如,假设我们使用单个数据库运行两个域名为abc.com和xyz.com的应用程序,并从abc.com启动延迟作业并设置调用作业的时间,来自xyz.com的请求在abc.com之前调用毫秒来自xyz.com的作业正在启动并且作业运行时出现错误的参数。我想要一个解决方案,我们可以根据来自域或请求的URL的调用来调用延迟的作业。
任何人都可以在这方面帮助我,因为我被处理了处理这种情况的可能性。
提前致谢
答案 0 :(得分:1)
您可以设置两个不同的延迟作业队列来分别处理每个域的作业,而不是将所有作业放在一个队列中。
e.g。
object.delay(:queue => 'domain_one').method
object.delay(:queue => 'domain_two').method
然后,您可以在此处运行两个可以单独为每个队列提供服务的独立工作程序。
https://github.com/collectiveidea/delayed_job有关于如何使用DelayedJob
的多个队列的信息