Redisを使用してキューに入れられたジョブをresqueで再実行する方法
概要
現在、Resque と redis を使用してジョブをスケジュールしましたが、ジョブの実行予定時刻にワーカーがいないため、ジョブが実行されないという問題に直面しています。現在、ジョブはエンキューされた状態のままです。
Redis でジョブのタイムスタンプを更新して、欠落したジョブを選択するために別のジョブをスケジュールせずに再実行できるようにする方法はありますか?
欠落しているすべての一意の job_id を見つけようとしましたが、job_id を使用して Redis 内のデータを取得できませんでした
解決策
同じジョブを再度実行する場合は、resque-retry を試してください。
Redis のキー値を自分で変更したい場合 (一貫性と競合状態のため推奨されません)
これをredis-cli経由で実行してみてください。 LINDEXコマンド、 これにより項目の値が取得され、後で使用するために保存されます。
次に、LREM を使用してキューから削除します。
ここで、前のステップのタイムスタンプを更新します (これは単なる JSON 文字列化です)。次に、LPUSH コマンドを使用してタイムスタンプをキューにプッシュし戻す必要があります。
redis-cli コマンドの詳細については、ここを確認してください