首页 文章

根据对象数量均匀动态调度后台作业

提问于
浏览
2

在Sinatra应用程序中,我需要每天为应用程序的每个用户运行后台工作(我可能会使用sidekiq) .

我想根据用户数量在白天均匀分发它们 . 因此,例如,如果有12个用户,则必须每两个小时执行一次作业,如果有240个用户,则必须每6分钟执行一次作业 .

我知道有一些宝石允许你安排后台工作(Rufus调度程序,每当......),但是我不确定他们是否允许更改内部工作必须根据动态值执行,例如对象数量在一个集合中 .

知道如何实现这一目标吗?

1 回答

  • 0

    使用whenever,您可以像这样开始:

    在用户模型中,成功添加用户后:

    every (1440/User.all.count).to_i.minutes do
      add your background command task
    end
    

    另外不要忘记更新实际更新cron的商店 .

    system 'bundle exec whenever --update-crontab store'
    

相关问题