大量创建石英触发器

问题描述 投票:0回答:1

我们的项目在航空公司领域,我们的系统正在管理航空公司的航班。系统从外部来源以消息形式获取航班详细信息,并且将来数据库中始终可以提供长达90天的航班。

我们需要在航班起飞前X分钟将消息发送到外部系统。例如,在航班起飞前90分钟,需要将一条消息发送到外部系统。这需要在一天的所有飞行中都进行。

[我们正在计划实施解决方案,例如当航班信息进入我们的系统时,我们将为该航班创建一个石英触发器,以在航班起飞前90分钟发送该消息。

但是我们面临的问题是一天将有300多个航班。这意味着一天中至少要在系统中创建300个触发器,我们认为这将导致调度程序系统中的任何性能瓶颈。

请建议是否有更好的替代方法。我们是否只能通过一个触发器来实现这一点,该触发器将频繁查询数据库并执行所有满足条件的航班发送航班消息的复杂逻辑。

java quartz-scheduler
1个回答
0
投票

我找到了一种解决问题的方法,并将其发布在此处,以便其他人可以从中受益。创建大量石英触发器根本不是一个好主意,我们仅通过两个工作就解决了该问题。第一项工作每天午夜运行一次,它将查找当天的所有航班并计算其消息发送时间。此信息将写入表。

创建另一个作业,该作业每五分钟运行一次并读取表,以查看当前时间是否需要发送任何消息,以及上一次尝试中是否有失败的消息。然后它将发送消息并相应地更新状态。

© www.soinside.com 2019 - 2024. All rights reserved.