java 使用某种TaskManager类实现服务器端逻辑的最佳方法

rnmwe5a2  于 2023-01-29  发布在  Java
关注(0)|答案(2)|浏览(109)

我通常在Node中编码,但是想尝试 Boot ,在我开始一个我想构建的项目之前,我想询问最好的方法来保存时间。
我的项目需要某种Manager类来管理我将要编写的一组自定义类,例如管理一组Animal.class对象的AnimalManager。
所有的动物都使用websockets接收来自第三方API的数据。我需要一些管理器类来处理所有这些动物,并根据自定义间隔调用它们的函数等等。
我现在感到困惑的是如何实现这样的Manager类,它们需要在启动后开始工作,而不需要示例化。据我理解,@Service更像是数据库操作的业务逻辑。是否有一些与Manager类或独立类等效的类,它们不与数据库或控制器交互,只用于运行任务?

tyu7yeag

tyu7yeag1#

你可以使用Spring的CommandLineRunner,它将在启动后执行,当一切都初始化并准备就绪时,请参见:https://www.baeldung.com/spring-boot-console-app

@SpringBootApplication
public class Application implements CommandLineRunner {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
 
    @Override
    public void run(String... args) {
        // TODO implementation of your task manager
    }
}
j0pj023g

j0pj023g2#

我真的不知道管理器是否连续运行(在循环中),也不知道动物是否是硬编码的,以及这些间隔是否可以在运行时配置......但也许这会有所帮助:
您可以使用@PostConstruct创建一个组件(为您的经理),然后(在启动后)https://www.baeldung.com/spring-postconstruct-predestroy开始执行您的操作。
您还可以使用https://www.baeldung.com/spring-scheduled-tasks以特定间隔调用方法
也有可能动物不需要管理器,只是对传入消息做出React的组件。

相关问题