我正在玩Rails 4.2
应用程序使用ActiveJob
受支持resque/sidekiq
用于电子邮件安排。当用户创建时事通讯活动时,会创建一个新作业并安排在特定日期。这一切都很好,但是当用户更改交货日期时会发生什么。
在这种情况下,每个作业都可以检查是否应该交付,因此无效的作业将被忽略,并且仅执行最后一个作业。这可以工作,但如果用户进行 1k 次编辑,会将 1k-1 个无效作业推送到队列中 - 不好。我认为现有的工作应该更新或用新的工作取代。据我所知,通过搜索Redis
排队等候job_id
是慢的。
在 Rails 中重新安排 ActiveJobs 的正确方法是什么(使用 resque/sidekiq)?
没有,工作并不意味着要重新安排。你已经回答了你自己的问题:
在这种情况下,每个作业都可以检查是否应该交付,因此无效的作业将被忽略,并且仅执行最后一个作业。
另一种方法是重新设计发送营销活动的方式:将交付日期存储在数据库中,并让 cron 每分钟检查一次是否需要交付的营销活动now然后立即创建 Sidekiq 作业。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)