一种基于JAVA BeanShell的自动化任务制造技术

技术编号:20176368 阅读:51 留言:0更新日期:2019-01-23 00:17
本发明专利技术涉及一种基于JAVA BeanShell的自动化任务,首先根据XML配置文件,初始化调度线程和运行线程;接着所述调度线程以预设的频率扫描计划任务表,获取当前时刻是否有计划需要执行;若当前时刻有任务需要运行时,调度线程将需要运行的任务脚本交付给运行线程来运行,若当前时刻没有任务需要运行时,则跳过此次扫描,运行线程接到调度线程的命令后,根据调度线程传入的BeanShell脚本,调用BeanShell动态编译引擎,将BeanShell脚本动态编译为可执行二进制指令;最后执行动态编译后的BeanShell动态脚本,调用提前封装好的原子化接口进行查询与判断,用以确保脚本逻辑在接口数据的基础上正常执行。本发明专利技术能够充分利用线程资源,并且便于扩展,便于维护。

An Automatic Task Based on JAVA Bean Shell

The present invention relates to an automated task based on JAVA BeanShell. Firstly, the scheduling thread and the running thread are initialized according to the XML configuration file. Then the scheduling thread scans the scheduled task table at a preset frequency to obtain whether the scheduled task needs to be executed at the current time. If the task needs to run at the current time, the scheduling thread will deliver the task script to the running line. Procedure to run, if there is no task to run at the current time, then skip this scan. After the running thread receives the command of the scheduling thread, according to the BeanShell script passed by the scheduling thread, it calls the BeanShell dynamic compiler engine, and dynamically compiles the BeanShell script into the executable binary instructions. Finally, it executes the dynamically compiled BeanShell dynamic script and calls the pre-encapsulated BeanShell dynamic script. Atomicized interface is used to query and judge to ensure that script logic is executed normally on the basis of interface data. The invention can make full use of thread resources, and is easy to expand and maintain.

【技术实现步骤摘要】
一种基于JAVABeanShell的自动化任务
本专利技术涉及自动化任务解决方案领域,特别是一种基于JAVABeanShell的自动化任务。
技术介绍
在日趋繁杂的互联网形式下,软件开发的需求是多种多样的,除了直接与用户打交道的前端页面外,还有一类需求,这类需求需要程序在后台默默执行,完成一些复杂的业务逻辑与交互。甚至,有时候为了完成前端页面展示数据的要求,或者说为了系统性能上的因素考虑,本来直接在用户UI上完成的功能,必须由系统在后台为用户去完成一些中间过程的数据处理以及过程量的逻辑判断等。关于这类需求的场景主要有,数据采集与整合、短信的下发与回复、业务催缴、监控系统等等。可见,一个庞大的业务系统,是离不开其后台运行程序的支持的。这里所说的自动化任务,是指能够按照用户或者运维人员的意图,在人为设定的时间频率要求下,运行特定的逻辑并能够进行智能判断,从而进一步进行处理的任务逻辑。现有的Java自动化任务,一般是通过springquartz或者JavaJDK中自带的Timer定时器来完成的。其中springquartz通过配置时间表达式,来实现任务的调度,框架通过解析配置在XML文件中本文档来自技高网...

【技术保护点】
1.一种基于JAVA BeanShell的自动化任务,其特征在于:包括以下步骤:步骤S1:根据XML配置文件,初始化调度线程和运行线程;步骤S2:所述调度线程以预设的频率扫描计划任务表,获取当前时刻是否有计划需要执行;步骤S3:若当前时刻有任务需要运行时,调度线程将需要运行的任务脚本交付给运行线程来运行,并进入步骤S4;若当前时刻没有任务需要运行时,则跳过此次扫描,并返回步骤S2;步骤S4:运行线程接到调度线程的命令后,根据调度线程传入的BeanShell脚本,调用BeanShell动态编译引擎,将BeanShell脚本动态编译为可执行二进制指令;步骤S5:执行动态编译后的BeanShell动...

【技术特征摘要】
1.一种基于JAVABeanShell的自动化任务,其特征在于:包括以下步骤:步骤S1:根据XML配置文件,初始化调度线程和运行线程;步骤S2:所述调度线程以预设的频率扫描计划任务表,获取当前时刻是否有计划需要执行;步骤S3:若当前时刻有任务需要运行时,调度线程将需要运行的任务脚本交付给运行线程来运行,并进入步骤S4;若当前时刻没有任务需要运行时,则跳过此次扫描,并返回步骤S2;步骤S4:运行线程接到调度线程的命令后,根据调度线程传入的BeanShell脚本,调用BeanShell动态编译引擎,将BeanShell脚本动态编译为可执行二进制指令;步骤S5:执行动态编译后的BeanShell动态脚本,脚本中调用提前封装好的原子化接口进行查询与判断,以确保脚本逻辑在接口数据的基础上正常执行。2.根据权利要求1所述的一种基于JAVABeanShell的自动化任务,其特征在于:步骤S3还包括:所述调度线程依据任务执行的频度,相应的增加或减少运行线程的数目,以达到减少系统开销的目的。3.根据权利要求1所述的一种基于JAVABeanShell的自动化任务,其特征在于:步骤S1具体包括以下步骤:步骤S11:调度线程初始化时,通过读取dispatchThread.xml配置文件,初始化包括调度线程数量、计划任务开始ID、...

【专利技术属性】
技术研发人员:林宇唐建光李正祥黄欣李松清
申请(专利权)人:中邮科通信技术股份有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1