私は現在、ユーザーがHTTP APIに対して(ユーザーに代わって)実行されるタスクをスケジュールできるようにするWebアプリケーションを設計しています。タスクは繰り返し発生する可能性があり、スケジューリングに使用できる最小の時間分解能は1分になります。タスクの性質上、非同期で実行するのは理にかなっていると思います。しかし、この部分のアーキテクチャはどのように見えるべきですか?
タスクキューを使用してWebアプリケーションでタスクを作成し、それらをワーカーで実行できるようにすることを考えました。この場合、いくつか質問があります。
- 定期的なタスクを処理するにはどうすればよいですか?
- タスクの結果を簡単に保存するにはどうすればよいですか?
- キューを「永続的」にすることは簡単に可能ですか?
- ワーカーはデータベースと直接対話する必要がありますか?
- 定期的なタスクを手動でキューに入れる必要がありますか?
他に何を考えられますか?この種のWebアプリケーションアーキテクチャについて考えているのは私だけではないと思いますが、「ベストプラクティス」はありますか?タスクキューは進むべき道ですか?