Heroku で無限の数のワーカーが作成されていないことを確認したいと思います。
私は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 の呼び出しは、ジョブが 1 回だけ発生することを意味しますか?
このすべての終わりにコールドレインが必要ですか?
また、すべてのワーカーが同じキューの下に作成されています。たとえば、SyncFolders 用に別のキューを作成する必要がありますか?