Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

README.md

任务模块

Maven Central Build Status codecov License

提供任务配置,调度,监控. 支持单节点,集群,分布式部署.支持多种任务配置方式: 注解, 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(id="test.job",name="测试任务")
    @Scheduled(cron="0 0/1 * * * ?") //支持spring的Scheduled注解
    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>
<!--使用redisson作为redis客户端进行集群管理-->
<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson</artifactId>
    <version>3.8.2</version>
</dependency>

application.yml

hsweb: 
    task:
      cluster: #集群管理配置,默认使用redis进行集群管理
        redis:
          hosts: redis://127.0.0.1:8761
          database: 1
      worker:
       # id: ${spring.application.name}-${HOSTNAME} #默认使用此ID,不同的节点id必须不同.
        name: worker-node-1
        groups: ${spring.application.name} #worker将执行这些分组的任务
        client-group: ${spring.application.name} #worker作为client自动提交任务时,将使用此分组,必须为groups属性的子集

定义worker

@SpringBootApplication
@EnableTaskWorker
public class Application{
   
   public static void main(String[] args) {
       SpringApplication.run(Application.class);
   }
        
   //使用注解方式定义一个任务,并指定调度规则
   @Job(id="test.job",name="测试任务")
   @Scheduled(cron="0 0/1 * * * ?") //支持spring的Scheduled注解
   public void myJob(){
       System.out.println("执行任务");
   }
}

定义scheduler

 @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}-${HOSTNAME} #默认使用此ID

About

停更,没用了

Resources

Releases

No releases published

Packages

No packages published