首页 » 软件开发 » PowerJob——实现接入设备的定时任务调度(调度定时处理器执行接入设备)

PowerJob——实现接入设备的定时任务调度(调度定时处理器执行接入设备)

乖囧猫 2024-07-24 07:32:59 0

扫一扫用手机浏览

文章目录 [+]

  引言

  今天跟大家分享一个能够在工业物联网系统内实现接入设备的定时任务调度框架——PowerJob,此框架主要功能如下:

  1. 使用简单:提供前端Web界面,允许开发者可视化地完成调度任务的管理(增、删、改、查)、任务运行状态监控和运行日志查看等功能。

PowerJob——实现接入设备的定时任务调度(调度定时处理器执行接入设备) 软件开发
(图片来自网络侵删)

  2. 定时策略完善:支持 CRON 表达式、固定频率、固定延迟和API四种定时调度策略。

  3. 执行模式丰富:支持单机、广播、Map、MapReduce 四种执行模式,其中 Map/MapReduce 处理器能使开发者寥寥数行代码便获得集群分布式计算的能力。

  4. 工作流支持:支持在线配置任务依赖关系(DAG),以可视化的方式对任务进行编排,同时还支持上下游任务间的数据传递,以及多种节点类型(判断节点 & 嵌套工作流节点)。

  5. 执行器支持广泛:支持 Spring Bean、内置/外置 Java 类,另外可以通过引入官方提供的依赖包,一键集成 Shell、Python、HTTP、SQL 等处理器,应用范围广。

  6. 运维便捷:支持在线日志功能,执行器产生的日志可以在前端控制台页面实时显示,降低 debug 成本,极大地提高开发效率。

  7. 依赖精简:最小仅依赖关系型数据库(MySQL / PostgreSQL / Oracle / MS SQLServer...)。

  8. 高可用 & 高性能:调度服务器经过精心设计,一改其他调度框架基于数据库锁的策略,实现了无锁化调度。
部署多个调度服务器可以同时实现高可用和性能的提升(支持无限的水平扩展)。

  9. 故障转移与恢复:任务执行失败后,可根据配置的重试策略完成重试,只要执行器集群有足够的计算节点,任务就能顺利完成。

  同类型产品对比

  快速入门

  1. 初始化项目

  可通过git拉取官方demo工程进行学习,地址:

  git clone https://github.com/PowerJob/PowerJob.git

  2. 导入idea

  3. 基础架构

  如上图所示,拉取工程之后其中powerjob-server是调度服务器,提供任务调度以及web端管理页面功能,powerjob-worker-samples,为官方已经编写好的实例程序不做过多赘述,其中powerjob-work是我们需要编写辨析任务逻辑的模块。

  4. 修改配置

  在启动powerjob-server是需要修改其中application.properties文件。

  5. 调度器,执行器,处理器

  修改完配置文件后,便可以在powerjob-work模块中编写代码,整个框架,主要是分为调度器(server),执行器(work),处理器(processor),其中我们所需要执行的任务逻辑代码便是在执行器work工程中,创建类并继承BasicProcessor ,BroadcastProcessor ,MapReduceProcessor ,三种处理器各有不同特性,分别为:

  (1)单机处理器:单机执行的策略下,server 会在所有可用 worker 中选取健康度最佳的机器进行执行。

  (2)广播处理器:广播执行的策略下,所有机器都会被调度执行该任务。
为了便于资源的准备和释放,广播处理器在`BasicProcessor` 的基础上额外增加了 `preProcess` 和 `postProcess` 方法,分别在整个集群开始之前/结束之后选一台机器执行相关方法。

  (3) 并行处理器:MapReduce 是最复杂也是最强大的一种执行器,它允许开发者完成任务的拆分,将子任务派发到集群中其他Worker 执行,是执行大批量处理任务的不二之选。

  本文为演示作用,采用单机处理器BasicProcessor。

  编写完处理器逻辑代码之后便可以,启动work工程模块,并且登录web任务管理页面创建任务,并选定处理器执行任务。

  6.web管理页面

  新建任务

  可按照下图配置任务信息

  任务运行

  前往任务实例页面便可以查看任务详细运行情况

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0