ジョブを順番に処理するのに役立つキューイングツールを探しています。問題を伝えるためにWebサイトに参加しているユーザーの例を使用します。実際には、ユーザーはそれぞれ最大1分かかる、より退屈な仕事であり、数千人のユーザーがいます。
user1-登録->支払いの処理->写真のアップロード->写真のサイズ変更
user2-パスワードのリセット->ログイン->写真のアップロード->写真のサイズ変更
上記のジョブはすべて、そのユーザーのために処理する必要があります。つまり、登録が完了する前に支払いを処理することはできません。これらの各ジョブは同じ方法で処理されます(外部サービスへのhttpリクエストの起動)。
ユーザー1の登録に時間がかかる場合、ユーザー2がパスワードのリセットを待つ理由はありません。1つのキューに複数のワーカーがいる場合、次にポップされるジョブは何でもかまいません。そのため、ユーザーのタスクは間違った順序で処理される可能性があります。
現時点では、redisリストを使用してこれを行うハッキングされたシステムがありますが、理想的ではなく、改善が必要です。これを行う既成のツールまたはパターンがある場合、それは素晴らしいことです。ユーザーごとにrabbitmqに新しいキューをプログラムで作成できる可能性があると思いましたが、それほど設計されていないと感じました。