在Sinatra应用程序中,我需要每天为应用程序的每个用户运行后台工作(我可能会使用sidekiq)。
我想根据用户数量在白天均匀分发它们。因此,例如,如果有12个用户,则必须每两个小时执行一次作业,如果有240个用户,则必须每6分钟执行一次作业。
我知道有一些宝石可以让你安排后台工作(Rufus调度程序,每当...),但是我不确定他们是否允许更改内部工作必须根据动态值执行,例如集合中的对象数量。
知道如何实现这一目标吗?
答案 0 :(得分: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'