将Spring或Lambda用于批量事件触发器

xe55xuns  于 2022-12-10  发布在  Spring
关注(0)|答案(1)|浏览(142)

寻找一些关于应用程序设计的帮助。我正在使用Spring框架和在AWS中托管应用程序。
我正在开发一个企业Java Web应用程序,该应用程序应该在到达触发时间时处理事件。例如,消费者可以将事件设置为在12/20/22上午07:35开始,系统应该在到达该时间时发送通知。
我可以把这些事件和它们的触发时间沿着存储在一个数据库中,并设置一个Spring调度程序(@Scheduler)来每分钟运行一次,并处理触发时间到达的事件。
有没有其他的设计方法?我不知道Spring是否提供了一个功能,我可以创建这些事件,当触发时间到达时,Frameworks触发这些事件。这样,我就可以远离管理调度和触发部分。
我使用AWS来托管这些应用程序,因此我考虑的另一个选择是为每个此类事件创建一个AWS lambda,并让AWS管理触发部分。
让我知道你的看法?或者如果你遇到类似的问题,你是如何解决的?

vyswwuz2

vyswwuz21#

您可以考虑使用spring-cloud-dataflow将其作为任务和流进行管理。
您可以创建一个自定义的批处理应用程序,它将使用@Scheduled在事件发生时检查数据库,然后将事件发送到流中。您可以使用Spring Integration API与RabbitMQ或Kafka主题进行交互。
该事件应包含处理该事件所需的足够信息。然后,您将拥有一个流应用程序,该应用程序生成内容并通过电子邮件发送,或将其传递到发送电子邮件的单独流应用程序。https://dataflow.spring.io/docs/stream-developer-guides/programming-models/
流将类似于::邮件事件|信息处理器|消息发送者
您将配置mail_events的属性,使其与为mail-event-batch应用程序创建和配置的主题相匹配。
您还可以使用Spring云数据流来管理邮件事件批处理应用程序。

相关问题