我有一个Rails应用程序,其中每个用户都有特定数量的后台工作人员。
由于用户为增加可用的工作人员数量而支付了更多费用,所以我希望能够动态添加这些工作人员。
我想结合使用ActiveJob
和Sidekiq
,并考虑了以下解决方案:
id
创建了一个新队列。在使用Sidekiq实施此解决方案时遇到问题,我找不到有关如何动态添加队列和工作程序的文档。
答案 0 :(得分:1)
如果要执行此操作,请尝试以下操作:
遵循以下原则:
class MyWorker
def perform(user_id, *args)
user = User.find(user_id)
unless user.has_available_workers
# re-enqueue with the same args. Possibly, with a delay.
return
end
user.checkout_worker
# do work
ensure
user.release_worker
end
end