准备工作

本文介绍应用开发前的准备工作。

搭建工程

在开始使用任务调度产品之前,您需要根据实际需求,搭建以下类型的工程:

SOFABoot 工程

  1. 下载并配置好一个 SOFABoot 工程原型。

    具体步骤参见 创建 Web 工程

  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 全局配置项。

    环境参数配置详情,请参见 properties 配置项

非 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. 获取环境配置参数。

    环境参数配置详情,请参见 properties 配置项

  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);
        }
    }

下载示例代码

为快速进行任务调度项目的本地工程开发,您需要下载任务调度 示例工程

阿里云首页 金融分布式架构 SOFAStack 相关技术圈