本文介紹應用開發前的準備工作。
搭建工程
在開始使用任務調度產品之前,您需要根據實際需求,搭建以下類型的工程:
SOFABoot 工程
下載并配置好一個 SOFABoot 工程原型。
具體步驟參見 快速入門。
對于 SOFABoot 3.4.3 以下的版本,需要添加如下 Tracer 依賴。
說明添加前,請仔細檢查工程是否已經依賴了 Tracer,避免 JAR 包沖突問題。
SOFABoot 已在 3.4.3 及其以上版本自動依賴 Tracer,無需再手動添加。SOFABoot 最新版本信息,詳見 版本說明。
<dependency> <groupId>com.alipay.sofa</groupId> <artifactId>tracer-enterprise-sofa-boot-starter</artifactId> </dependency>
在 SOFABoot 工程的
pom.xml
文件中引入任務調度產品的依賴:<dependency> <groupId>com.alipay.sofa</groupId> <artifactId>scheduler-enterprise-sofa-boot-starter</artifactId> </dependency>
修改 SOFABoot 全局配置項。
環境參數配置詳情,請參見 引入 SOFA 中間件。
非 SOFABoot 工程
配置工程的 Maven
settings.xml
文件。在本地 Maven 路徑下的
settings.xml
文件中,配置mvn.cloud.alipay.com
倉庫的地址及用戶名密碼。配置后工程即可通過 Maven 獲取該倉庫中任務調度的 JAR 依賴包,不配置則無法獲取到 JAR 包。說明mvn.cloud.alipay.com
倉庫的地址及用戶名密碼請 提交工單獲取。在工程的主
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.2.0</version> </dependency> <dependency> <groupId>com.antcloud.antvip</groupId> <artifactId>antcloud-antvip-common</artifactId> <version>1.2.0</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.83</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>
獲取環境配置參數。
環境參數配置詳情,請參見 引入 SOFA 中間件。
初始化客戶端 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"); // 阿里云賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創建并使用RAM用戶進行API訪問或日常運維,請登錄RAM控制臺創建RAM用戶。 // 此處以把AccessKey和AccessKeySecret保存在環境變量為例說明。 // 強烈建議不要把AccessKey和AccessKeySecret保存到代碼里,會存在密鑰泄漏風險 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); } }
下載示例代碼
為快速進行任務調度項目的本地工程開發,您需要下載任務調度 示例工程。
文檔內容是否對您有幫助?