我有一个带有@Scheduled方法的类任务,如下所示
public class Task{
public void task(){}
}
TaskConfig创建2个相同类的不同bean:
public class TaskConfig{
@Bean("task1")
public Task getTask1(){return new Task();}
@Bean("task2")
public Task getTask1(){return new Task();}
}
使用基于xml的配置,我可以为下面的方法创建2个调度器,它们将在不同的时间运行。:
<task:scheduled-tasks >
<task:scheduled ref="task1" method="task" cron="*/5 * * * * ?" />
<task:scheduled ref="task2" method="task" cron="*/30 * * * * ?" />
</task:scheduled-tasks>
但是如何在Spring5中实现同样的场景呢?请建议。提前谢谢!
您可以使用@Scheduled
注释并注释要执行的方法:https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html#scheduling-注释支持您还可以定义类似cron的表达式。
您还应该确保启用了调度:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/annotation/EnableScheduling.html
编辑:
public class TaskConfig{
@Bean("task1")
public Task getTask1(){return new Task() {
@Override
@Scheduled
public void task(){super.task();}
};
}
@Bean("task2")
public Task getTask1(){return new Task() {
@Override
@Scheduled
public void task(){super.task();}
};
}
我对任务比较陌生,想在我的应用程序上实现它们。我想要的是,当页面加载时,在我的客户端对一个调用我需要的所有编目并将所有对象的JSON返回给我的客户端的函数执行一个ajax请求。服务器端的这个函数是我创建的具有多个任务的函数。因此,我对此有以下问题: > 加载该页面所需的所有目录并返回一个JSON对象是一个好的做法吗? 如果任务调用一个类的同一个实例,它实际上是作为多线程工作的吗?还是在每个任务中创
我使用spring调度器任务在固定间隔后调用类中的方法,如下所示 一旦调度程序触发init方法。init方法将使用线程池执行器来执行队列中的所有作业。 问题:执行init方法的初始线程是否会等待init方法中的所有处理(由executor service通过生成新线程来完成)完成? 调度器任务的池大小属性仅用于触发任务,而不是用于执行或处理被触发任务内部的逻辑。
我试着用一个实例并行运行许多计划任务,每一个我这样配置任务 但是有很多实例每秒开始,而第一个实例尚未完成。是否可以同时配置任务运行的一个实例?我的豆子配置在Spring调度器.xml
我正在开发一个微服务,使用Spring Boot,公开RESTendpoint。由于可伸缩性,我必须在一个不同的端口上运行该服务的多个实例。应用程序的配置是什么,以便它可以注册到eureka并且请求是负载平衡的?我正在使用Spring cloud config、Eureka服务器和Zuul。
问题内容: 我将在春季使用任务名称空间设置一个计划任务计划。 我想根据cron表达式大多数的任务安排到火,有的在启动后只启动一次,一个固定的延迟,然后再也没有(即什么设置,以将实现在SimpleTriggerBean)。 是否有可能在任务名称空间中实现此目标,还是我需要恢复为触发器定义bean? 问题答案: 如果你看看任务命名空间XSD,你会发现只有三个不同的配置类型:,和。 并且,如果您查看Sc
我知道从中调用带注释的方法,前面已经讨论过了。 但是我不明白为什么当bean被覆盖时它就不起作用了。 我有一个遗留类,我不能修改。它是一个配置,同时也是一个业务bean。这是一个简化版本: 现在,调用返回而不是。 当配置被删除并且测试上下文的配置被设置为时,一切都能正常工作(结果为)。 在测试中注册bean有什么不同?