【发布时间】:2015-03-28 13:36:15
【问题描述】:
我正在使用Rails 4.2 应用程序,它使用ActiveJob 支持resque/sidekiq 进行电子邮件调度。当用户创建时事通讯活动时,会创建一个新作业并安排在特定日期。这一切都很好,但是当用户更改交货日期时会发生什么。
在这种情况下,每个作业都可以检查是否应该交付,因此无效作业将被忽略,并且只会执行最后一个作业。这可能有效,但如果用户进行 1k 次编辑,会将 1k-1 个无效作业推入队列 - 不好。我认为应该更新现有工作或用新工作替换。据我所知,在Redis 队列中搜索job_id 很慢。
在 Rails 中重新安排 ActiveJobs 的正确方法是什么(使用 resque/sidekiq)?
【问题讨论】:
-
您是否考虑过迁移到 Que,它在 PostgreSQL 之上工作并与 AJ 集成?至少在批量搜索更新时速度很快,我不确定是否可以重新安排。
-
谢谢@D-side。我会检查它是否适合我的平台。
-
@D-side 有趣的是我从未使用过 que gem。 Que 的主要目标是可靠性,而且看起来速度也很快 - 非常适合企业服务。
-
我实际上使用它是为了减少依赖。我并没有期待很多工作,因此将工作存储移交给我已经在使用的数据库似乎很棒。可惜项目从未完成:(
标签: ruby-on-rails resque sidekiq rails-activejob