一、原生Java版本

1. 项目依赖
<!-- https://mvnrepository.com/artifact/cn.horace.cronjob/cronjob-executor -->
<dependency>
    <groupId>cn.horace.cronjob</groupId>
    <artifactId>cronjob-executor</artifactId>
    <version>最新版本</version>
</dependency>
2. 启动类入口

原生版本的启动类入口为CronJobExecutorClient,使用方式如下:

// taskObjects 为任务对象集合,原生Java版本需要手动放入一个集合中
ExecutorConfig config = ExecutorConfig.Builder.newBuilder(taskObjects)
        .address("http://127.0.0.1:9527") // 调度器地址
        .tenant("horace") // 租户代码
        .appName("example-executor") // 应用名称
        .appDesc("普通示例执行器") // 应用描述
        .tag("common") // 标签
        .build();
CronJobExecutorClient.init(config).start();

二、SpringBoot版本

1. 项目依赖
<!-- https://mvnrepository.com/artifact/cn.horace.cronjob/cronjob-executor-starter -->
<dependency>
    <groupId>cn.horace.cronjob</groupId>
    <artifactId>cronjob-executor-starter</artifactId>
    <version>最新版本</version>
</dependency>
2. 配置方式
  • 代码配置,注意与原生版本的配置类不同,这里是ExecutorStarterConfig
@Bean
public ExecutorStarterConfig cronJobExecutorStarterConfig() {
    ExecutorStarterConfig config = new ExecutorStarterConfig();
    config.setAddress("http://127.0.0.1:9527");
    config.setTenant("horace");
    config.setAppName("example-executor-starter");
    config.setAppDesc("Spring示例执行器");
    config.setTag("common");
    return config;
}
  • 配置文件配置,引入依赖后,即可直接在application.properties配置文件中配置,并且有智能提示 微信二维码

注意:代码配置优先于配置文件的配置,即有代码配置的情况下,配置文件的配置不生效。

3. 启动方式
  • 增加注解@EnableCronJob
  • 启动Spring容器

详情参考:快速开始

三、Go语言版本

1. 项目依赖
go get github.com/horacedh/cronjob-executor
2. 启动方式
type DemoTask struct {
}

// Handle 任务处理方法
func (d DemoTask) Handle(params *task.TaskParams) *task.HandlerResult {
	logger.Infof("task handle, params: %v", utils.ToJsonString(params))
	return task.Success()
}

func main() {
    // 创建执行器客户端
    client := cronjob.GetExecutorClient(&bean.ExecutorOptions{
        Address: "http://127.0.0.1:9527",
        Tenant:  "horace",
        AppName: "go-example-executor",
        AppDesc: "Go示例执行器",
        Tag:     "common",
        SignKey: "7d890a079948b196756rtf5452d2245t",
    })
    
    // 添加任务
    client.AddTask(DemoTask{}, bean.TaskOptions{
        Cron: "* * * * * ? ",
        Name: "Go测试任务",
    })
    
    // 启动执行器
    client.Start()
}

四、其他版本

正在规划中….Go、Shell等

最后更新