Job Scheduling service design

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

有一个创建基于多个域微服务和一些服务的系统的想法,这些服务可以做其他事情,例如,作业调度服务。这里的想法是能够调度来自任何微服务的任何作业,因此,如果将新的微服务添加到系统中,则调度新的服务的工作应该没什么大不了的。

首先,我担心的是创建这种服务的能力,该服务似乎独立于域微服务,另一件事是足够抽象服务,以使客户端不知道服务的方式。实施,正在使用哪个作业调度库等。恐怕无法实现我想要的。

例如,我有一个微服务,该服务需要在每个星期五发送一封包含特定内容的电子邮件,而另一个微服务要安排另一个工作。因此,他们俩都将与我要实现的作业调度服务进行通信。是否有任何架构解决方案可以实现这一目标?

很抱歉,我自己了解问题时就描述了这个问题。希望您的提示和想法能帮助我找到具有这种功能的最佳方法。也许某些库提供了开箱即用的功能。

c# asp.net-core architecture microservices job-scheduling
1个回答
0
投票

对于您正在描述的内容,应该使用事件和单个服务来封装域的那部分。例如,对于诸如电子邮件之类的东西,您应该具有一个电子邮件服务,该服务侦听事件,然后针对特定事件发送特定的电子邮件。

例如,您正在进行用户注册,例如,当用户注册时,您可能具有实际上创建用户记录的用户服务。该服务完成后将发送“ UserCreated”事件。然后,电子邮件服务将通过向用户发送欢迎电子邮件来响应“ UserCreated”事件。您可能还有其他也响应相同事件的服务。这种抽象使您可以将创建新用户的逻辑与创建新用户之后需要执行的任务分开,这不是用户服务的领域。

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