操作场景
分布式任务调度实现了与 TSF 框架的无缝集成,您仅需要引用 SDK,按照规范编写并配置任务,即可实现任务触发、执行、停止等多种管理。
通过以下操作,您可快速体验 TSF 分布式任务调度功能的使用流程。
前提条件
1. 开始使用分布式任务调度之前,请确保您已正确配置 Maven 环境(参见 SDK 下载)。
2. 您可以选择基于 TSF 官方提供的 Demo 实现快速开发(参见 Demo 下载)。
3. 在控制台新建任务之前,您需提前部署好执行任务的服务实例/节点(参见 应用部署 完成应用程序包的发布部署)。
操作步骤
步骤1:添加 pom 依赖
在 pom.xml 文件中添加如下 dependency。
<dependency><groupId>com.tencent.cloud</groupId><artifactId>tct-spring-boot-starter</artifactId><version>1.2.0</version></dependency>
步骤2:启用任务调度 SDK
在 application.yml 文件中添加如下配置,启用任务调度 SDK。
tct// 默认是falseenabled: true
步骤3:编写任务
通过实现分布式任务调度框架中的
ExecutableTask
及 TerminableTask
接口,编写任务。在 execute 方法中实现任务执行逻辑,在 cancel 方法中实现任务停止逻辑,示例如下:package com.tencent.cloud.task;import com.tencent.cloud.task.sdk.client.LogReporter;import com.tencent.cloud.task.sdk.client.model.ExecutableTaskData;import com.tencent.cloud.task.sdk.client.model.ProcessResult;import com.tencent.cloud.task.sdk.client.model.ProcessResultCode;import com.tencent.cloud.task.sdk.client.model.TerminateResult;import com.tencent.cloud.task.sdk.client.remoting.TaskExecuteFuture;import com.tencent.cloud.task.sdk.client.spi.ExecutableTask;import com.tencent.cloud.task.sdk.client.spi.TerminableTask;import org.apache.commons.lang3.RandomUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.lang.invoke.MethodHandles;/*** 模拟简单的任务, 执行时间在10s ~ 15s之间, 可以终止。*/public class SimpleLogExecutableTask implements ExecutableTask,TerminableTask {private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());@Overridepublic ProcessResult execute(ExecutableTaskData taskData) {ProcessResult result = new ProcessResult();try {LogReporter.log(taskData,"start to execute SimpleLogExecutableTask...");LogReporter.log(taskData,"hello, this is a demo for SimpleLogExecutableTask");long sleepTime = RandomUtils.nextLong(10000, 15000);//ThreadUtils.waitMs(sleepTime);Thread.sleep(sleepTime);result.setResultCode(ProcessResultCode.SUCCESS);LogReporter.log(taskData,"success to execute SimpleLogExecutableTask... ");} catch (InterruptedException e) {result.setResultCode(ProcessResultCode.TERMINATED);LogReporter.log(taskData,"task is terminated... ");} catch (Throwable t) {LOG.error(t.getMessage(), t);result.setResultCode(ProcessResultCode.FAIL);}return result;}@Overridepublic TerminateResult cancel(TaskExecuteFuture future, ExecutableTaskData taskData) {LogReporter.log(taskData,"task start to cancel");future.cancel(true);LogReporter.log(taskData,"task cancel success");return TerminateResult.newTerminateSuccessResult();}}
说明
步骤4:在控制台新建任务
1. 登录 TSF 控制台。
2. 在左侧菜单栏中,找到组件中心分类,单击分布式任务调度 > 任务管理,进入任务管理页面。
3. 在任务管理页面,单击新建任务,在新建任务的弹框中输入您的任务设置。
详细参数说明请参见 任务管理 文档。
4. 设置完成后,单击保存,所创建的任务将显示在任务列表中。
步骤5:查看任务执行情况
步骤6:停止任务执行
任务执行完成之前,您可通过单击操作列的停止执行,手动强行终止任务的此次执行。