次のユースケースに最適な設計を探しています。
ユーザーが終了日時でエンティティを作成するシステムを構築しています。終了時刻に達したらすぐに、これらのエンティティのステータスを期限切れに変更するジョブをスケジュールする必要があります。
これらは私が考えることができる2つの解決策です
- ジョブは毎分実行され、クエリを実行して期限切れのエンティティを確認します (endTime > sysdate)。問題: データベースに負荷がかかります。このクエリを毎分実行すると、データベースに負荷がかかる場合があります。
- エンティティが作成されるとすぐに、各エンティティのジョブをスケジュールします。 問題: システムで作成されるジョブが多すぎます。これらのエンティティが毎日 1000 個作成されます。
上記の2つよりも良い解決策はありますか? 人々は一般的にこれをどのように行うのですか?