执行器


负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效; 接收“调度中心”的执行请求、终止请求和日志请求等。

添加依赖

在需要集成执行器的项目中添加依赖

    <dependency>
            <groupId>cn.com.tcc.ofa</groupId>
            <artifactId>ofa-job-core</artifactId>
            <version>${parent.version}</version>
        </dependency>

添加配置

xxl:
  job:
    enabled: true
    admin:
      # 调度中心的地址
      addresses: http://127.0.0.1:21000/ofa-job-admin
    executor:
      appname: ${spring.application.name}
      # 选填,为空时自动获取ip
      ip:
      # 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
      port: 9999 
      # 执行器日志文件路径
      logpath: logs/${spring.application.name}/jobhandler
      # 执行器日志保存天数 [选填] :值大于3时生效,启用执行器Log文件定期清理功能,否则不生效;
      logretentiondays: -1
    # 执行器通讯TOKEN [选填]:非空时启用;
    accessToken:

编写JobHandler

/**
 * 任务Handler示例(Bean模式)
 *
 * 开发步骤:
 * 1、继承"IJobHandler":“com.xxl.job.core.handler.IJobHandler”;
 * 2、注册到Spring容器:添加“@Component”注解,被Spring容器扫描为Bean实例;
 * 3、注册到执行器工厂:添加“@JobHandler(value="自定义jobhandler名称")”注解,注解value值对应的是调度中心新建任务的JobHandler属性的值。
 * 4、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
 *
 * @author xuxueli 2015-12-19 19:43:36
 */
@JobHandler(value="demoJobHandler")
@Component
public class DemoJobHandler extends IJobHandler {

    @Override
    public ReturnT<String> execute(String param) throws Exception {
        XxlJobLogger.log("XXL-JOB, Hello World.");

        for (int i = 0; i < 5; i++) {
            XxlJobLogger.log("beat at:" + i);
            TimeUnit.SECONDS.sleep(2);
        }
        return SUCCESS;
    }

}

调度中心添加执行器

执行器名称即为上面配置的appname,选择自动注册,即调度中心和执行器之间会通过心跳自动注册。

sc6 sc7