美文网首页码农的世界人生代码
Schedulerx2.0分布式执行之——广播执行

Schedulerx2.0分布式执行之——广播执行

作者: 阿里云技术 | 来源:发表于2019-08-29 15:28 被阅读0次

1. 简介

广播执行表示一个任务实例会广播到该分组所有worker上执行,当所有机器都执行完成,该实例才算完成。

任意一台worker执行失败,都算该实例失败。

所有worker执行成功,才算该实例成功。

有子任务列表,可以看每台机器的执行详情。

2. 执行方式

执行方式选择广播

3. 任务类型

任务类型可以选择多种,比如脚本,或者java任务。如果选择java,还支持preProcess和postProcess高级特性。

使用java任务需要继承JavaProcessor(1.0.8+版本),接口如下:

public ProcessResult process(JobContext context) throws Exception; (必选)
public void preProcess(JobContext context); (可选)
public ProcessResult postProcess(JobContext context); (可选)
  • preProcess会在所有机器执行process之前执行,只会执行一次。
  • postProcess会在所有机器执行process之后且都成功执行,之后执行一次,可以返回结果,作为工作流数据传输。

4. 应用场景

4.1 批量运维

定时广播所有机器运行某个脚本。
定时广播所有机器清理缓存。

4.2 数据聚合

1)使用BroadcastJavaProcessor,preProcess的时候重置数据库count=0;
2)每台机器执行process的时候,根据自己机器内存或者日志的值,往数据库count叠加;
3)postProcess的时候,读取数据库count值,传给下游;

5. Demo

@Component
public class TestBroadcastJobProcessor extends JavaProcessor {
 @Override
 public ProcessResult process(JobContext context) throws Exception {
 System.out.println("this is process");
 return new ProcessResult(true);
 }
 @Override
 public void preProcess(JobContext context) {
 System.out.println("this is preProcess");
 }
 @Override
 public ProcessResult postProcess(JobContext context) {
 System.out.println("this is postProcess");
 return new ProcessResult(true, "hello broadcast");
 }
}

如上代码所示,起三台机器,执行结果如下:

worker1:

this is preProcess
this is process
this is postProcess

worker2:

this is process

worker3:

this is process

阅读原文
本文为云栖社区原创内容,未经允许不得转载。

相关文章

  • Schedulerx2.0分布式执行之——广播执行

    1. 简介 广播执行表示一个任务实例会广播到该分组所有worker上执行,当所有机器都执行完成,该实例才算完成。 ...

  • Schedulerx2.0分布式计算原理&最佳实践

    1. 前言 Schedulerx2.0的客户端提供分布式执行、多种任务类型、统一日志等框架,用户只要依赖sched...

  • 我要做 Android 之 广播

    广播的分类: 普通广播 有序广播 本地广播 粘性广播 一:普通广播 普通广播是一种完全异步执行的广播,在广播发出之...

  • xxl-job分布式调度入门

    1.什么是分布式调度分布式调度==》分布式 + 调度中心 + 执行器,调度中心根据对应任务执行条件去分布式的执行任...

  • 自定义发送广播

    广播主要分为两种类型:标准广播(完全异步执行的广播)和有序广播(完全同步执行的广播)。我们也可以根据广播是否可以跨...

  • android 学习笔记 第四章 广播

    第四章 广播(Broadcast) 标准广播: 异步执行,每一个接收器几乎在同一时刻接收到广播有序广播: 同步执行...

  • Android广播机制

    广播机制 简介 标准广播完全异步执行的广播同一时刻多个接收器收到消息不能阻断 有序广播同步执行的广播同一个时刻只有...

  • <第一行代码>chapter 5 Broadcast

    BroadcastReceiver 基本分类 标准广播(normal broadcasts) 异步执行的广播,发出...

  • 分布式设计

    1.定时任务数据task,有执行机器地址字段,这样防止了任务被重复执行,也做到了分布式执行的效果,执行压力负载均衡...

  • ActivityThread 中一些常用的知识点记录

    ActivityThread:它管理 应用程序进程 中主线程的执行,调度和执行Activity,广播,以及Acti...

网友评论

    本文标题:Schedulerx2.0分布式执行之——广播执行

    本文链接:https://www.haomeiwen.com/subject/rwxiectx.html