我想检查一下我是不是在heroku上创建了无数的工人。Sidekiq架构问题
我有一个是由发条宝石开始在Heroku以下工作:
every 5.minutes, SyncAccounts
同步帐户看起来是这样的:
def perform
UserRepo.all.each do |user|
EnqueueFolderSyncJobs.perform_async user.id
SyncContacts.perform_async user.id
SyncMeetings.perform_async user.id
end
end
它循环通过每一个用户,并造成进一步的工人。这些工人可能会产生更多的工人,例如,EnqueFolderSyncJobs创建一个工人同步IMAP文件夹:
google.email.folders.each do |folder|
SyncFolder.perform_async user_id, folder unless skip?(folder)
end
每5分钟那么这种情况正在发生。
调用perform_async是否意味着该作业只发生一次?
我是否需要在所有这些结束时拨打电话?
此外,所有工作人员都在相同的队列下创建,我应该为SyncFolders创建单独的队列吗?