在Sinatra应用程序中,我需要每天为应用程序的每个用户运行后台工作(我可能会使用sidekiq) .
我想根据用户数量在白天均匀分发它们 . 因此,例如,如果有12个用户,则必须每两个小时执行一次作业,如果有240个用户,则必须每6分钟执行一次作业 .
我知道有一些宝石允许你安排后台工作(Rufus调度程序,每当......),但是我不确定他们是否允许更改内部工作必须根据动态值执行,例如对象数量在一个集合中 .
知道如何实现这一目标吗?
使用whenever,您可以像这样开始:
在用户模型中,成功添加用户后:
every (1440/User.all.count).to_i.minutes do add your background command task end
另外不要忘记更新实际更新cron的商店 .
system 'bundle exec whenever --update-crontab store'
1 回答
使用whenever,您可以像这样开始:
在用户模型中,成功添加用户后:
另外不要忘记更新实际更新cron的商店 .