当前位置: 首页 > 知识库问答 >
问题:

如何设计一个SpringBoot调度器作为服务,使其他微服务可以使用它

卢聪
2023-03-14

我想设计一个调度器作为服务使用spring-boot。我的调度程序应该是通用的,这样其他微服务就可以随心所欲地使用它。

我试过正常的spring boot例子。

/***此计划程序将每20秒运行一次。*/@schedule(fixedRate=20*1000,initialDelay=5000)public void scheduleTaskWithInitialDelay(){logger.info(“fixed Rate Task With Initail Delay 20 seconds::Execution Time-”+datetimeformatter.format(localdatetime.now()));}

/**
 * This scheduler will run on every 10 Seconds.
 */
@Scheduled(fixedRate = 10* 1000, initialDelay = 5000)
public void scheduleTaskWithInitialDelay1() {
    logger.info("Fixed Rate Task With Initail Delay 10 Seconds:: Execution Time - "+dateTimeFormatter.format(LocalDateTime.now()));
}

共有1个答案

刁星渊
2023-03-14

您需要存储其他微服务的请求,以便在您的Persistent中调度某些内容。因此,您有一个清单,说明是哪个微服务请求了调度服务,并且使用了延迟或cron或其他方法。

现在,您可以从数据库中读取所有请求的配置,并为它们启动调度程序。

当人们选择编写自定义代码时,这是企业应用程序中常见的用例。

您的数据库表应该包含所有的细节+如果调度程序到达给定的时间(将数据/事件推送到某个URL或其他内容)时要做什么。

一些技术细节

您的计划服务应该允许

  • 添加计划
  • 启动/停止/更新现有计划
  • 调度程序满足时间要求时回调或其他操作

希望,这会有帮助。

 类似资料:
  • 在我们的项目中,我们使用Spring cloud Eureka作为服务注册中心。当我们使用ribbon客户端调用内部微服务时,所有URL都通过Eureka解析。。。调用外部URL是个问题。由于外部API是老式的,所以使用Feign似乎不是一个好选择。 从这样的服务调用外部URL的最佳方式是什么? 提前谢谢 帕特里斯

  • 我正在使用尤里卡发现服务器。我可以通过通过使用服务名从另一个微服务调用一个微服务,这对Eureka服务器是可见的。我听说在不久的将来将被弃用。 我还可以通过使用从另一个微服务调用一个微服务,但在本例中,我需要使用整个主机名。我不能叫他们服务名称。 是的,我可以从属性文件设置基本url,这样不需要重新启动jar,我们就可以更改基本url。如果我们这样做,那么我们可能不需要任何discovery服务器

  • nestjs 一个服务如何既做微服务也做http服务器? 比如一个接口既可以做 http 又可以做微服务.不想再写一个专门的http 服务器. 接口是否可以相同?

  • 我们的项目中使用的是Spring Cloud config server,它有多个微服务。配置服务器就绪后,我们现在将所有微服务的所有属性存储在一个中央git存储库中。每个微服务能够根据应用程序名称和配置文件提取自己的属性文件。我们试图将资源包存储在中央存储库中,并让config-server将这些资源包提供给微服务。我们的资源包包括属性文件,如messages_en.properties、mes

  • 我正在和spring boot、spring cloud一起开发微服务。我开始了解hystrix和断路器模式。我知道断路器是为了在下游微服务出错的情况下用交替响应来响应,我依赖这些微服务来获取数据。我的问题是,如果我没有任何有意义的替代响应可以提供,我为什么会需要断路器呢?