全部产品

前置条件

在开始使用任务调度产品之前,对于不同的工程类型,您必须做以下准备:

SOFABoot 工程

  1. 下载并配置好一个 SOFABoot 工程原型。配置步骤参见 SOFABoot 快速开始

  2. 对于 SOFABoot 3.4.3 以下的版本,需要添加如下 Tracer 依赖。

    说明

    • 添加前,请仔细检查工程是否已经依赖了 Tracer,避免 Jar 包冲突问题。

    • SOFABoot 将在 3.4.3 及其以上版本自动依赖 Tracer,无需再手动添加。SOFABoot 最新版本信息,详见 SOFABoot 版本说明

    <dependency>
         <groupId>com.alipay.sofa</groupId>
         <artifactId>tracer-enterprise-sofa-boot-starter</artifactId>
    </dependency>
  3. 在 SOFABoot 工程的 pom.xml 文件中引入任务调度产品的依赖:

    <dependency>
          <groupId>com.alipay.sofa</groupId>
          <artifactId>scheduler-enterprise-sofa-boot-starter</artifactId>
    </dependency>
  4. 修改 SOFABoot 全局配置项。详见 引入 SOFA 中间件 > 添加中间件全局配置项

非 SOFABoot 工程

  1. 配置工程的 Maven settings.xml 文件: 在本地 Maven 路径下的 settings.xml 文件中,配置 mvn.cloud.alipay.com 仓库的地址及用户名密码。配置后工程即可通过 Maven 获取该仓库中任务调度的 JAR 依赖包,不配置则无法获取到 JAR 包。

    说明

    mvn.cloud.alipay.com 仓库的地址及用户名密码请 提交工单 获取。

  2. 在工程的主 pom.xml 文件中引入 antschedulerclient 的依赖。以 1.0.7 版本为例:

    <dependency>
        <groupId>com.alipay.antschedulerclient</groupId>
        <artifactId>antschedulerclient-core</artifactId>
        <version>1.0.7</version>
    </dependency>
    <dependency>
        <groupId>com.alipay.antschedulerclient</groupId>
        <artifactId>antschedulerclient-antvip</artifactId>
        <version>1.0.7</version>
    </dependency>
    
    <!-- 间接依赖 -->
    <dependency>
        <groupId>com.antcloud.antvip</groupId>
        <artifactId>antcloud-antvip-client</artifactId>
        <version>1.0.4</version>
    </dependency>
    <dependency>
        <groupId>com.antcloud.antvip</groupId>
        <artifactId>antcloud-antvip-common</artifactId>
        <version>1.0.4</version>
    </dependency>
    <!-- antvip-common的依赖 -->
    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.4</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.50</version>
    </dependency>
    
    <dependency>
        <groupId>com.alipay.sofa.cloud</groupId>
        <artifactId>sdk-core</artifactId>
        <version>0.1</version>
    </dependency>
    <dependency>
        <groupId>com.alipay.sofa.common</groupId>
        <artifactId>sofa-common-tools</artifactId>
        <version>1.0.12</version>
    </dependency>
    
    <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>bolt</artifactId>
        <version>1.4.1</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba.toolkit.common</groupId>
        <artifactId>toolkit-common-lang</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>hessian</artifactId>
        <version>3.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.alipay.sofa.lookout</groupId>
        <artifactId>lookout-api</artifactId>
        <version>1.4.3</version>
    </dependency>
    <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>tracer-core</artifactId>
        <version>2.1.1</version>
    </dependency>
    <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>tracer-extensions</artifactId>
        <version>2.1.1</version>
    </dependency>
    <dependency>
        <groupId>com.alipay.common</groupId>
        <artifactId>tracer</artifactId>
        <version>2.1.1</version>
    </dependency>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>20.0</version>
    </dependency>
  3. 获取环境配置参数。详见 引入 SOFA 中间件 > 添加中间件全局配置项

  4. 初始化客户端 Client。示例如下:

    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        try {
            ApplicationContext applicationContext = event.getApplicationContext();
            Map<String, IJobHandler> handlerBeans = applicationContext
                    .getBeansOfType(IJobHandler.class);
            for (IJobHandler handler : handlerBeans.values()) {
                handlerList.add(handler);
            }
    // zone(cell),如果为空则认为不分zone(cell)
            zone = System.getProperty("com.alipay.ldc.zone");
    
            Config config = new Config(app, zone, instanceId, accessKey, securityKey);
            AntVipRouterConfig routerConfig = new AntVipRouterConfig();
            routerConfig.setEndPoint(antvipEndpoint);
            AntVipRouter router = new AntVipRouter(routerConfig);
            antSchedulerClient = new AntSchedulerClient(config, router, handlerList);
            antSchedulerClient.init();
        } catch (Throwable t) {
            LOGGER.error("init antschedulerclient error", t);
            throw new RuntimeException(t);
        }
    }