提供任务配置,调度,监控. 支持单节点,集群,分布式部署.支持多种任务配置方式: 注解, jar包, 脚本(js,groovy)
引入依赖
<dependency>
<groupId>org.hswebframework</groupId>
<artifactId>hsweb-task-spring-boot-starter</artifactId>
<version>${hsweb.task.version}</version>
</dependency>
@SpringBootApplication
@EnableTaskWorker
@EnableTaskScheduler
public class Application{
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
@Job(name="测试任务",scheduler=@Scheduler(cron="0 0/1 * * * ?"))
public void myJob(){
System.out.println("执行任务");
}
}
在worker和scheduler都引入依赖
<dependency>
<groupId>org.hswebframework</groupId>
<artifactId>hsweb-task-spring-boot-starter</artifactId>
<version>${hsweb.task.version}</version>
</dependency>
<dependency>
<groupId>org.hswebframework</groupId>
<artifactId>hsweb-task-cluster</artifactId>
<version>${hsweb.task.version}</version>
</dependency>
application.yml
hsweb:
task:
cluster: #集群时配置
redis:
hosts: redis://127.0.0.1:8761
database: 1
worker:
id: ${spring.application.name}-${HOSTNAME}
groups: ${spring.application.name}
name: worker服务
executor-type: thread-pool
@SpringBootApplication
@EnableTaskWorker
public class Application{
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
@Job(name="测试任务")
public void myJob(){
System.out.println("执行任务");
}
}
application.yml
hsweb:
task:
cluster:
redis:
address: redis://127.0.0.1:6379
database: 1
worker:
id: ${spring.application.name}-${HOST}
groups: ${spring.application.name}
name: worker服务
executor-type: thread-pool
@SpringBootApplication
@EnableTaskScheduler
public class Application{
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
application.yml
hsweb:
task:
cluster:
redis:
address: redis://127.0.0.1:8761
database: 1
scheduler:
id: ${spring.application.name}-${HOST}