我有一个单线程消息侦听器来侦听传入的消息。收到的消息在收到时会保存在数据库中。
有一条消息 A 和关联的消息 B 跟在它后面,并带有一个引用 it。在一些奇怪的情况下,B 在 A 之前到达。现在在这种情况下,必须在一些 'x' 相等的时间间隔之后进行 3 次重试,以查看 A 是否已经到达并且然后保持关联。
由于消息监听器是单线程的,如果我们让线程休眠,整个系统都会受到影响。所以必须有一个单独的线程重试。
我们是否可以为此目的使用 Quartz Job Scheduler 来避免处理多线程问题并以以下两种方式中的任何一种方式拥有 PERSISTENT STORE,
- 在 Quartz 中调度一个 Job 3 次,并跟踪 JobDataMap 中的一个标志,以检查之前的重试是否成功,然后什么都不做就返回
或者
2.安排一个作业重试一次,如果重试失败,几秒钟后安排相同的作业。
石英能否仅用于重复性工作,并且没有跨工作的一些状态信息,或者有没有其他更好的方法来做到这一点。