SchedulerX2.0支持一次性任务

简介: SchedulerX2.0支持一次性任务

应用场景

未来固定时间点跑一次,任务自动销毁。常见场景

  • 订单超时未支付自动关闭
  • 定时日历提醒


优势

精准时刻

SchedulerX的一次性任务与延时消息相比,没有固定延迟多少时间或者在多少天内的限制,可以支持到未来任意时间点,使用简单。


丰富的任务类型

SchedulerX一次性任务可以适用所有任务类型,比如java、http、shell任务。也可以适用所有分布式模型,比如单机、广播、分片、MapReduce等。


可视化运维

SchedulerX的一次性任务,和其他任务一样,有可视化的界面可以看到和查询,甚至可以在调度时间来临之前随意修改任务参数。

支持失败自动重试等功能。


用法

通过API创建one_time任务

依赖sdk

<dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-schedulerx2</artifactId>
      <version>1.0.6</version>
</dependency>


timeType设置为5,代码如下:

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.schedulerx2.model.v20190430.CreateJobRequest;
import com.aliyuncs.schedulerx2.model.v20190430.CreateJobResponse;
public class CreateJavaJob {
    public static void main(String[] args) throws Exception {
        // Open API 的接入点,具体查看上表支持地域列表以及购买机器地域填写
        String regionId = "public";
        //鉴权使用的 AccessKeyId,由阿里云官网控制台获取
        String accessKeyId = "xxxxxxxx";
        //鉴权使用的 AccessKeySecret,由阿里云官网控制台获取
        String accessKeySecret = "xxxxxxxxx";
        //产品名称
        String productName ="schedulerx2";
        //对照支持地域列表选择Domain填写
        String domain ="schedulerx.aliyuncs.com";
        //构建 OpenApi 客户端
        DefaultProfile.addEndpoint(regionId, productName, domain);
        DefaultProfile defaultProfile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
        DefaultAcsClient client = new DefaultAcsClient(defaultProfile);
        CreateJobRequest request = new CreateJobRequest();
        request.setJobType("java");
        request.setExecuteMode("standalone");
        request.setDescription("test");
        request.setName("一次性任务测试");
        request.setClassName("com.alibaba.schedulerx.test.processor.HelloWorldJob3");
        //timeType=5表示一次性任务
        request.setTimeType(5);
        //yyyy-MM-dd HH:mm:ss
        request.setTimeExpression("2021-12-15 12:11:00");
        request.setNamespace("433d8b23-06e9-408c-aaaa-90d4d1b9a4af");
        request.setGroupId("xueren_sub");
        // 监控报警
        request.setTimeoutEnable(true);
        request.setTimeoutKillEnable(true);
        request.setFailEnable(true);
        request.setTimeout(12300L);
        // 高级配置,配置失败自动重试
        request.setMaxAttempt(3);
        request.setAttemptInterval(30);
        CreateJobResponse response = client.getAcsResponse(request);
        if (response.getSuccess()) {
            System.out.println("jobId=" + response.getData().getJobId());
        } else {
            System.out.println(response.getMessage());
        }
    }   
}


控制台可视化

通过API新建任务后,可以在控制台看到一次性任务如下图


任务实现

和其他任务实现一致,任务执行完,调度平台会自动清理任务,客户端不需要删除任务

import com.alibaba.schedulerx.worker.domain.JobContext;
import com.alibaba.schedulerx.worker.processor.JavaProcessor;
import com.alibaba.schedulerx.worker.processor.ProcessResult;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Component;
@Component
public class HelloWorldJob3 extends JavaProcessor {
    @Override
    public ProcessResult process(JobContext context) throws Exception {
        System.out.println("hello HelloWorldJob3");
        return new ProcessResult(true);
    }
}


目录
相关文章
|
资源调度 分布式计算 运维
阿里巴巴任务调度SchedulerX支持一次性任务
阿里巴巴任务调度SchedulerX2.0支持一次性任务
1276 2
|
分布式计算 并行计算 数据库
Schedulerx2.0分布式计算原理&最佳实践
1. 前言 Schedulerx2.0的客户端提供分布式执行、多种任务类型、统一日志等框架,用户只要依赖schedulerx-worker这个jar包,通过schedulerx2.0提供的编程模型,简单几行代码就能实现一套高可靠可运维的分布式执行引擎。
24385 2
|
前端开发 Java 调度
阿里新一代分布式任务调度平台Schedulerx2.0破土而出
SchedulerX是阿里巴巴自研的基于Akka架构的分布式任务调度平台(兼容开源XXL-JOB/ElasticJob),支持Cron定时、一次性任务、任务编排、分布式跑批,具有高可用、可视化、低延时等能力。
18104 0
阿里新一代分布式任务调度平台Schedulerx2.0破土而出
|
自然语言处理 分布式计算 Java
Schedulerx2.0支持多语言版本的分片模型
1. 简介 任务调度系统可以对多种任务进行调度(定时、编排、重刷历史数据等),有些任务调度系统还提供了分布式任务,帮助用户解决大数据处理的难题。分布式任务主要分为静态分片和动态分片。 1.1 静态分片 主要场景是处理固定的分片数,比如分库分表固定1024张表,需要若干台机器分布式去处理。
3740 0
Schedulerx2.0支持多语言版本的分片模型
|
Java 调度 中间件
Akka in Schedulerx2.0
1. 前言 Schedulerx2.0是阿里中间件自研的基于akka架构的新一代分布式任务调度平台,提供定时、任务编排、分布式跑批等功能,具有高可靠、海量任务、秒级调度等能力。 本篇文章以Schedulerx2.0为例子,介绍akka的应用场景,希望能给同样从事分布式系统开发的同学一些启发。
18555 0
|
分布式计算 调度 监控
阿里任务调度Schedulerx2.0之MapReduce模型
阿里巴巴任务调度Schedulerx2.0自研轻量级分布式模型MapReduce,可以进行大数据的实时/离线跑批。通过一个map方法就能将海量数据分布式到多台机器上执行,通过process方法处理子任务的业务,最后通过reduce方法可以获取所有子任务执行的状态和结果
6562 1
|
分布式计算 前端开发 Java
阿里新一代分布式任务调度平台Schedulerx2.0破土而出
产品简介 Schedulerx2.0是阿里中间件自研的基于Akka架构的新一代分布式任务调度平台,提供定时、任务编排、分布式跑批等功能。使用Schedulerx2.0,您可以在控制台配置管理您的定时任务,查询历史执行记录,查看运行日志。
7699 0
|
缓存 搜索推荐 网络安全
钉钉登录页面网页自动跳转,显示对不起,你无权限查看该页面,需要使用钉钉账号登录才可以进行授权
钉钉登录页面网页自动跳转,显示对不起,你无权限查看该页面,需要使用钉钉账号登录才可以进行授权
4279 1
|
9月前
|
自然语言处理 运维 Kubernetes
云效产品使用报错问题之部署单找不到命名空间如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
Java 网络协议 数据安全/隐私保护
java使用telnet连接交换机并管理交换机
像crt或者ssh、甚至是cmd命令中使用window的telnet命令连接交换机。都可以起到控制交换机的作用。<br> telnet说白了就是一个tcp的长连接。你向交换机输入一组命令,其实就是你使用socket连接上交换机,把你的命令out出去。<br> 如果你想看你执行的命令,返回了什么,你就是用io流直接读取socket中的长连接流中的内容即可。telnet其实就是这么简单。<
4595 0

热门文章

最新文章