inBuilder低代码平台新特性推荐-第八期

news2024/10/3 16:12:42

今天来给大家带来的是inBuilder低代码平台特性推荐系列第八期——定时任务!

inBuilder计划任务框架支持快速开发,任务开发完成后,只需发布成bean,并通过配置界面绑定所需触发器,即可到点触发。

一、 概念介绍

定时任务,简要说明就是在指定时间触发执行某个动作。

任务(Job):任务是真正执行体,承载着具体的业务逻辑。

触发器(Tigger): 触发器记录着调度任务的时间规则,Trigger主要包括两种:SimpleTrigger和CronTrigger。

调度器(Scheduler) : 调度器管理了所有的任务和触发器,并负责整个定时系统的调度。

二、 调度任务

在服务启动时,当前服务器默认不会加载系统内的任务。如果想让当前服务器运行任务,需要先将“/server(jstack)/config/platform/common/sys_schedule.json”文件中的开关设置为true。

三、 任务状态

调度任务状态主要分为以下四个:

停止:任务未启动

准备:任务准备执行

启动:任务已被调度服务管理,并在规定时间执行

失败:任务启动失败

“准备”大家可以理解为将要执行,但是还没被调度服务所管理。

任务查询时会判断准备状态任务实际运行状态。只有状态为准备,并已经被任务调度器所管理的任务才会显示为启动。

所以,准备状态ready一般有两个原因:

1.不存在调度服务器,任务根本没有启动。

2.存在调度服务器,但任务查询请求访问的为非调度调度器,无法依赖任务调度器判断任务是否已被管理。(这也是任务操作为什么要直连调度服务器的原因)

四、 开发相关要求

1.      构件逻辑内应避免多线程

inBuilder平台每个定时任务的调度均在各自的线程内进行,线程分配时、销毁时的上下文进行统一管理,构件内开启多线程会导致构件内线程无法获取上下文的情形,因此应避免。

2.      构件应为无状态的构件任务

inBuilder平台定时任务已经支持分布式负载,同一个定时任务的相邻两次间隔很有可能分发在两个不同计算节点上进行,因此构件本身不能依赖上次执行后缓存在计算节点内存中的数据,即构件无状态。

3.      构件任务内不允许吞异常

inBuilder平台定时任务已经支持异常捕获,关键的异常信息可以以RuntimeException的类型扔出来 框架捕捉后会统一记录到执行日志中,直接在前端进行查看。

五、 开发示例

1.  场景介绍

商品字典单价定时同步至未提交的销售订单。

2.  运行时效果及要求

每一分钟同步一次。

同步时只将商品的单价同步至销售订单即可。

3.  开发步骤

01开启计划任务: 启动服务之前,确保以下文件中计划任务的可用配置已开启。

       /server/config/platform/common/sys_schedule.json中ScheduleCenter改为true

02任务定义

菜单路径:【系统公共】-【系统配置】-【调度任务】-【任务管理】。

任务管理页面如图所示。左侧列表展示当前系统支持或已预置的任务类型,右侧列表展示当前任务类型下的任务信息。

点击【新增】按钮,进入单任务详情界面,输入任务编号、任务名称,选择定时器。

点击【选择】进入定时器选择列表界面,可以选择已经有的定时器,也可以新增定时器,我们点击【新增】进入定时器定义界面,完成定时器编辑之后选中该定时器。

【任务信息】,定义完成通用构件之后,可以选择补充。

03 通用构件定义

       打开商品业务对象,在该业务对象新建通用构件。

进入通用构件设计器界面,填写应用、服务单元、版本等信息,方法列表中点击新增填写方法编号GoodToOrder、名称商品单价同步销售订单管理,入参和返回值本例未使用不用维护。

用idea打开通用构件所在maven工程,编写代码逻辑。

在通用构件同目录下新建java文件,将其器发布成bean。

04 单任务配置通用构件配置

       方法编码为通用构件的方法编码,元数据标识为通用构件发布的元数据ID,组件名称为通用构件的名称;对象参数为通用构件执行方法需要传递的参数。对象参数中若包含多个参数,使用英文逗号隔开,若包含数组则使用英文中括号括起。

05 查看执行结果

       启动服务,查看日志,并可以通过详细信息查看详细执行情况。

查看调度日志,可以看到任务执行完成等事件,代表定时任务执行成功。

欢迎大家下载inBuilder开源社区版,免费试用体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1230144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java的IO流-打印流

打印流 PrintStream public void println()自动换行 PrintWriter package com.itheima.println;import java.io.FileInputStream; import java.io.PrintStream; import java.io.PrintWriter;public class Test2 {public static void main(String[] arg…

HarmonyOS脚手架:快捷实现ArkTs中json转对象

前言 在上篇《HarmonyOS开发:UI开展前的阶段总结》中提到了未来的规划,既能让大家学会鸿蒙开发,也能让大家在以后的开发中如虎添翼,最终决定,便以脚手架为产出物,结合实际的业务需求,进行相关技…

读《Segment Anything in Defect Detection》

摘要 (好像只是说把SAM应用到了红外缺陷分割领域) 引言 无损检测得到红外图像,根据热能观察异常 贡献: •从两个光学脉冲热成像系统构建广泛的缺陷热数据库,包括各种材料并释放它们。 • 开发DefectSAM,这是第一个用于缺陷检测…

什么是美颜SDK?直播美颜SDK技术深度剖析

在实现实时美颜的过程中,美颜SDK扮演着关键的角色,它为开发者提供了一套强大的工具,使得实时美颜效果能够轻松应用于直播平台。 一、美颜SDK的基本概念 美颜SDK是一种软件工具包,通过集成了丰富的图像处理算法和实时计算技术&a…

香港身份和内地身份可以共存吗?

香港身份和内地身份可以共存吗? 很多朋友在刚开始了解香港身份的时候,都会对香港永居身份、居民身份、内地户口等等名词产生疑惑,搞不清它们之间的区别。 还有一部分人误以为拿到香港身份就意味着要放弃内地户口。 今天银河君就来具体解释…

java springboot在测试类中启动一个web环境

我们在开发过程中 可以对数据层 业务层做测试 那我们的表现层能做测试吗? 答案自然是可以的 但是 前提 我们要有一个web环境 我们现在 测试类运行 明显是个很普通的java程序 还是这个 SpringBootTest 它有一个 webEnvironment 我们可以先这样写 package com.examp…

大数据-之LibrA数据库系统告警处理(ALM-12057 元数据未配置周期备份到第三方服务器的任务)

告警解释 系统安装完成后会检查元数据是否有周期备份到第三方服务器的任务,然后每1小时会检查一次。如果元数据未配置周期备份到第三方服务器的任务,将发送严重告警。 在用户创建元数据周期备份到第三方服务器的任务后,告警消除。 告警属性…

单链表相关面试题--1.删除链表中等于给定值 val 的所有节点

/* 解题思路:从头节点开始进行元素删除,每删除一个元素,需要重新链接节点 */ struct ListNode* removeElements(struct ListNode* head, int val) {if(head NULL)return NULL;struct ListNode* cur head;struct ListNode* prev NULL;while…

打造自己的3D模型AI 自动纹理工具

在线工具推荐: 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 为 3D 模型创建纹理可能比您想象的要容易。虽然注意细节很重要,但有很多方法可以制…

你好,我叫Python,欢迎你认识派森。(来自关于Python语言的全方位自我介绍。

文章目录 自我简介一、Python的发展历程二、Python的特色1.语言特色2.语法特色 三、Python2与Python3的比较1.print 函数2.Unicode3.除法运算4.异常5.八进制字面量表示6.不等运算符7.python 3.0严格使用tab键进行缩进 四、Python适用开发场景及成果1.应用领域2.Python开发出的应…

二百零六、Flume——Flume1.9.0单机版部署脚本(附截图)

一、目的 在实际项目部署时,要实现易部署易维护,需要把安装步骤变成安装脚本实现快速部署 二、部署脚本在Linux中文件位置 文件夹中只有脚本文件flume-install.sh和tar包apache-flume-1.9.0-bin.tar.gz 三、Flume安装脚本 #!/bin/bash #获取服务器名…

使用centos搭建内网的yum源

1.安装httpd服务 2.启动服务,设置开机自启 #启动服务 systemctl start httpd # 设置开机自动启动 systemctl enable httpd systemctl status httpd3.新建一个目录,将rpm文件放到该目录下 4.将/etc/httpd/conf/httpd.conf文件中的DocumentRoot "…

海康威视综合安防管理平台任意文件上传

系统介绍 HIKVISION iSecure Center综合安防管理平台是一套“集成化”、“智能化”的平台,通过接入视频监控、一卡通、停车场、报警检测等系统的设备,获取边缘节点数据,实现安防信息化集成与联动,公众号:web安全工具库…

【SpringCloud】Eureka基于Ribbon负载均衡的调用链路流程分析

文章目录 前言1.调用形式2.LoadBalancerInterceptor3.负载均衡流程分析3.1 调用流程图3.2 intercept()方法3.3 execute()方法3.4 getServer()方法3.4 子类的chooseServer()方法3.5 getLoadBalancerStats().…

低代码平台全解析:衍生历程、优势呈现与未来趋势一览无余

在数字化时代,应用程序的开发与更新已成为企业保持竞争力的关键。传统的编码方式,虽然精细且功能强大,但耗时且要求开发者具备较高的技术水平。在这样的背景下,低代码开发平台的出现无疑为企业带来了福音。 低代码开发平台是一种创…

一文全面了解低代码

目录 一、低代码概况 二、低代码构成 三、低代码开发者 1)低代码赋能IT技术人员--低代码 2)低代码赋能业务人员--零代码 四、低代码核心技术概念 五、低代码能力 六、低代码技术应用价值及趋势 一、低代码概况 2014年,Forrester提出了低代码…

nvm的下载与使用

1.如果已经安装nodejs , 先卸载nodejs; 从控制面板中 卸载程序 卸载nodejs win r打开cmd ,管理员运行 where node 查看是否删除干净nodejs 2.下载nvm 从github 下载nvm , 下载nvm 3.nvm 和node安装路径最好写在同一个路径下 ,如D盘 ,D\a\nvm , D\a\nodejs 4.…

采购组件修改申请办理流程

现有采购流程1 #mermaid-svg-qAesAhfW2IQBcef8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qAesAhfW2IQBcef8 .error-icon{fill:#552222;}#mermaid-svg-qAesAhfW2IQBcef8 .error-text{fill:#552222;stroke:#5522…

Linux:安装MySQL服务(非docker方式)

1、下载安装包 下载MySQL安装包,需要Oracle官网的账号 下面是网友提供的账号及密码,亲测有效。 账户:3028064308qq.com 我用的这个,可以登陆 密码:OraclePassword123!Oracle Account: 602205528qq.com Oracle Pass…

【原创】CentOS7.9解决mdadm组raid阵列后resync非常慢的问题

前言 前几日我买了4块16TB的硬盘使用mdadm组了一个raid10阵列,具体如何搭建的可以看我之前的博客。 【报错记录】疯狂踩坑之RockyLinux创建Raid1镜像分区,Raid分区在重启后消失了!外加华硕主板使用Raid模式后,硬盘在系统中无法找…