Sidekiq更改预定作业或使用延迟作业(或类似,基于数据库...)?

时间:2017-02-26 20:30:27

标签: ruby-on-rails sidekiq delayed-job

我正在努力实现对网络应用的要求:

  • 用户应该能够在将来安排工作
  • 用户应该能够查看预定作业列表
  • 用户应该能够编辑预定作业的时间

以上所有内容都可以通过以下方式轻松完成:

ss = Sidekiq::ScheduledSet.new
job = ss.find_job(jid)
job.reschedule(at)

但是,我必须至少在数据库中存储jid和预定时间,以便用户可以确定他/她是否要重新安排它。
我担心的是上述效率不高。首先,我必须在redis和db中复制存储,另外,正如Mike Perham所说:

  

你可以做到这一点,但它不会有效率。它是查找的线性扫描   JID的预定工作。

请参阅https://stackoverflow.com/a/24189112/1755697

如果我需要在db和redis(sidekiq存储)中存储详细信息,我想知道是否可以更简单地使用在数据库中存储作业的延迟作业,从而不会重复存储。
关于延迟工作的主要问题是它尚未准备好Rails 5.0并且暂时没有更新。

对于选择哪种系统或如何以更有效的方式使用Sidekiq来满足上述要求,我将不胜感激。

0 个答案:

没有答案