我正在为以下用例寻找最佳设计。
我正在构建一个系统,用户可以在其中创建具有结束日期/时间的实体。一旦到达结束时间,我需要安排一个作业以将这些实体的状态更改为已过期。
这是我能想到的两个解决方案
- 作业每分钟运行一次并运行查询以检查过期实体(endTime > sysdate)。问题:加载数据库,每分钟运行一次此查询可能会给数据库增加负载。
- 创建实体后,立即为每个实体安排一个作业。 问题:系统中将创建太多工作,每天将创建 1000 个这样的实体。
有没有比上述两个更好的解决方案?人们通常如何做到这一点?