我有一个监听事件的应用程序。在每个事件上,我都会做一些事情,然后发送另一个事件。
[NameUpdated (Joe)] -> [do stuff] -> [PersonUpdated (Joe)]
问题是,我有多个事件触发了我的最终结果:
[NameUpdated (Joe)] -> [do stuff] -> [PersonUpdated (Joe, 29, "")]
[AgeUpdated (27)] -> [do stuff] -> [PersonUpdated (Joe, 27, "")]
[JobUpdated (Dev)] -> [do stuff] -> [PersonUpdated (Joe, 27, DEV)]
事件在很短的时间内就汇聚在一起(比如说在1秒钟之内)。结果,我的应用程序还在一秒钟内发送了三个事件。但是只有最后一个有趣。
我的想法是推迟执行。当我收到第一个事件时,我想创建一个作业,该作业将在几秒钟后执行。当我收到第二个和第三个事件时,我可以检查是否已经有工作。
我正在寻找一些基于Spring(引导)的功能来做到这一点。实现队列和调度程序来处理它没问题-但我不想做很多手工制作的事情。因此,我正在寻找实现这一目标的明智方法。