java与java ee_计划Java EE 7批处理作业

java与java ee

Java EE 7添加了使用JSR 352以标准方式执行批处理作业的功能。

<job id="myJob" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0"><step id="myStep"><chunk item-count="3"><reader ref="myItemReader"/><processor ref="myItemProcessor"/><writer ref="myItemWriter"/>
</chunk>

该代码片段是定义为XML(也称为Job XML)的Job Specification Language。 它使用面向项目或面向块的处理,一步一步定义了规范的工作。 块可以具有读取器,可选处理器和写入器。 这些元素中的每一个都使用Job XML中的相应元素进行标识,并且是打包在归档文件中的CDI bean。

可以使用以下命令轻松开始此工作:

BatchRuntime.getJobOperator().start("myJob", new Properties());

在不同的论坛和会议上提出的一个典型问题是如何在Java EE运行时中安排这些作业。 Batch 1.0 API本身不提供任何可安排这些作业的内容。 但是,Java EE平台提供了三种不同的方式来调度这些作业:

  1. 在EJB中使用@javax.ejb.Schedule批注。 这是一个示例代码,它将在每天的11:59:59 PM触发批处理作业的执行。
    @Singleton
    public class MyEJB {@Schedule(hour = "23", minute = "59", second = "59")public void myJob() {BatchRuntime.getJobOperator().start("myJob", new Properties());}
    }

    当然,您可以更改@Schedule的参数以在所需时间启动批处理作业。

  2. 如下所示,通过javax.enterprise.concurrent.Trigger使用ManagedScheduledExecutorService
    @Stateless
    public class MyStatelessEJB {@ResourceManagedScheduledExecutorService executor;public void runJob() {executor.schedule(new MyJob(), new Trigger() {public Date getNextRunTime(LastExecution lastExecutionInfo, Date taskScheduledTime) {Calendar cal = Calendar.getInstance();cal.setTime(taskScheduledTime);cal.add(Calendar.DATE, 1);return cal.getTime();}public boolean skipRun(LastExecution lastExecutionInfo, Date scheduledRunTime) {return null == lastExecutionInfo;}});}public void cancelJob() {executor.shutdown();}
    }

    呼叫runJob启动执行作业程序和cancelJob终止作业执行。 在这种情况下,新作业比上一个任务晚一天开始。 直到上一个被终止,它才开始。 您将需要更多错误检查才能正确执行。

    MyJob非常琐碎:

    public class MyJob implements Runnable {public void run() {BatchRuntime.getJobOperator().start("myJob", new Properties());}}

    当然,您可以通过在@PostConstruct调用此代码来自动调度它。

  3. 第二种技术的微小变化允许在固定的延迟后运行作业,如下所示:
    public void runJob2() {executor.scheduleWithFixedDelay(new MyJob(), 2, 3, TimeUnit.HOURS);
    }

    在调用runJob2方法2小时后执行第一个任务。 然后在后续执行之间要延迟3个小时。

您可以在Java EE平台中使用此支持。 另外,您还可以调用BatchRuntime.getJobOperator().start("myJob", new Properties()); 也可以使用任何Quartz计划的方法。

  • 您可以在WildFly上尝试所有这些方法 。
  • github.com/javaee-samples/javaee7-samples上有大量的Java EE 7示例。
  • 该特定示例可在github.com/javaee-samples/javaee7-samples/tree/master/batch/scheduling中找到 。

您如何安排批处理作业?

翻译自: https://www.javacodegeeks.com/2014/09/schedule-java-ee-7-batch-jobs.html

java与java ee

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

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

相关文章

html5 video 播放状态,10分钟了解HTML5的Video标签属性、方法和事件

标签的属性src &#xff1a;视频的属性poster&#xff1a;视频封面&#xff0c;没有播放时显示的图片preload&#xff1a;预加载autoplay&#xff1a;自动播放loop&#xff1a;循环播放controls&#xff1a;浏览器自带的控制条width&#xff1a;视频宽度height&#xff1a;视频…

hot编码 字符one_One Hot编码是什么?为什么要用它,什么时候用它?

作者&#xff1a;Rakshith Vasudev编译&#xff1a;ronghuaiyang导读当你在玩ML模型的时候&#xff0c;你会在任何地方遇到这个“One hot encoding”的术语。当你在玩ML模型的时候&#xff0c;你会在任何地方遇到这个“One hot encoding”术语。你可以看到一个one hot编码器的s…

CUBA 7.2 –有什么新功能?

CUBA平台的第七版向前迈出了一大步。 内部体系结构的改进和新的IDE为进一步改进奠定了良好的基础。 我们将继续添加新功能&#xff0c;以使开发人员的生活更轻松&#xff0c;并使他们的工作更加高效。 在7.2版中&#xff0c;我们引入了许多可能看起来像是主要更新的更改&#…

postgresql 分区视图_PostgreSQL架构集中式到分布式主流架构总结

文章目录一、PG未来主流架构为什么是分布式二、PostgreSQL集中式到分布式架构总结一、PG未来主流架构为什么是分布式如果说5年前DB的分布式还只是一种趋势&#xff0c;如今分布式数据库正逐渐从趋势变成主流。说到分布式&#xff0c;我想我们不能不提一下集中式和分库分表。01集…

html5 上传图片模板,HTML5实现图片文件异步上传

&#xff0c;过现前个能文使近记接的端问对字用近记接  利用HTML5的新特点做文件异步上传非常简单方便&#xff0c;本文主要展示JS部分&#xff0c;html结构。下面的代码并未使用第三发库&#xff0c;如果有参照&#xff0c;请注意一些未展现出来的代码片段。我这边的效果预览…

dot2谜团png_一个类加载的谜团解决了

dot2谜团png面对一个好老问题 我在应用程序服务器上遇到一些类加载问题。 这些库被定义为Maven依赖项&#xff0c;因此被打包到WAR和EAR文件中。 不幸的是&#xff0c;其中一些还安装在应用程序服务器中&#xff0c;但版本不同。 启动应用程序时&#xff0c;我们遇到了与这些类…

python log文件如何不写入syslog_Centos下python 对syslog重写进行日志记录

在Linux 环境下&#xff0c;python自带一个syslog的模块可以进行日志记录。python可以利用logging模块来重写syslog&#xff0c;这样就可以自定义写入文件的文件名。如果不做配置则直接写入到/var/log/message文件里。首先先写log.py,代码如下&#xff1a;importosimportsysimp…

html中可以有两个h1,在一个HTML中h1标签能出现几次?h1标签和标题标签

首页 > web前端 > html教程 > 正文 在一个HTML中h1标签能出现几次&#xff1f;h1标签和标题标签的差别是什么&#xff1f; 2018-08-29 10:57:28本篇文章主要介绍了关于HTML h1标签的一些解释&#xff0c;有html h1标签和html title标签的区别&#xff0c;还有网页中h1…

Java中的记录类型

2020年3月发布的JDK 14引入了记录 &#xff08;预览语言功能&#xff09;&#xff0c;这些记录提供了一种紧凑的语法来声明主要用于保存数据的类。 在记录中 &#xff0c;所有低级&#xff0c;重复且容易出错的代码都类似于构造函数&#xff0c;访问器和通用方法&#xff0c;例…

angular 注入器配置_Angular依赖注入介绍

依赖注入(DI -- Dependency Injection)是一种重要的应用设计模式。Angular里面也有自己的DI框架&#xff0c;在设计应用时经常会用到它&#xff0c;它可以我们的开发效率和模块化程度。依赖&#xff0c;是当类需要执行其功能时&#xff0c;所需要的服务或对象。DI是一种编码模式…

山东省102021年普通高考成绩查询,山东高考成绩今日发布!成绩查询看这里!

原标题&#xff1a;山东高考成绩今日发布&#xff01;成绩查询看这里&#xff01;山东高考生注意啦~今天16:20举行山东2020年夏季高考第二次新闻发布会届时将会公布高考录取政策、分数线情况等今天17:00公布2020夏季高考与等级考成绩发布会怎么看&#xff1f;高考成绩怎样查&am…

可变对象 不可变对象区别_对象应该是不可变的

可变对象 不可变对象区别在面向对象的编程中&#xff0c;如果对象的状态在创建后无法修改&#xff0c;则它是不可变的 。 在Java中&#xff0c;不可变对象的一个​​很好的例子是String 。 创建后&#xff0c;我们无法修改其状态。 我们可以要求它创建新的字符串&#xff0c;但…

判别分析分为r型和q型吗_SPSS聚类和判别分析参考.ppt

SPSS聚类和判别分析参考10.1主成分分析和因子分析简介 3 常用术语 (1)因子载荷 (2)变量共同度 (3)公共因子的方差贡献 10.1主成分分析和因子分析简介 10.1.2主成分和公因子数量的确定 (1) 确定时遵循几个原则 主成分的累积贡献率&#xff1a;一般来说&#xff0c;提取主成分的累…

计算机应用基础人才培养方案,1. 培养方案(计算机应用基础课程).doc

人才培养方案一、课程定位和课程目标1、课程性质和任务  《计算机应用基础》是高职高专教育中的一门理论与实践相结合的基础必修课&#xff0c;是培养大学生信息素养的必修课程。但与普通的素质教育课程不同&#xff0c;由于计算机应用的普及性和广泛性&#xff0c;学生的计算…

使用SoapUI调用不同的安全WCF SOAP服务-基本身份验证,第二部分

在本系列的第一篇文章中&#xff0c;我们创建了一个基本的身份验证服务&#xff0c;以使用SoapUI进行调用。 因此&#xff0c;在第二篇文章中&#xff0c;我们将逐步演示如何使用此工具成功调用这种服务。 使用SoapUI的1-Basic WCF SOAP –创建新的SOAP项目 首先&#xff0c;我…

r语言electricity数据集_R语言实验报告.doc

R语言实验报告R语言实验报告R语言判别分析实验报告班级&#xff1a;应数1201学号姓名&#xff1a;麦琼辉时间&#xff1a;2016年11月28号1 实验目的及要求1) 了解判别分析的目的和意义&#xff1b;2) 熟悉R语言中有关判别分析的算法基础。2 实验设备及要求个人计算机一台&#…

linux rar加压_Linux之rar文件解压之路

导读相信大家在使用Linux系统时有时候会碰到有关于rar文件的解压缩。网上下载rar 压缩文件的使用&#xff0c;在linux在我们需要对其进行解压缩&#xff0c;这个时候&#xff0c;我们需要安装 rar相关的文件&#xff0c;来进行解压缩。1. 下载我们进入rarlab网站&#xff0c;进…

全国计算机二级office基础知识,全国计算机二级office考试内容

计算机领域中所运用的技术方法和技术手段。计算机技术具有明显的综合特性&#xff0c;它与电子工程、应用物理、机械工程、现代通信技术和数学等紧密结合&#xff0c;发展很快。下面是小编整理的关于全国计算机二级office考试内容&#xff0c;希望大家认真阅读!基本要求1. 掌握…

insight切换窗口 source_source insight的使用方法逆天整理(1)

A. why SI:为什么要用Source Insight呢&#xff1f;因为她比完整的IDE要更快啊&#xff0c;比一般的编辑器便捷啊&#xff01;她有逆天的查看定义&#xff0c;查看调用&#xff0c;查看引用功能以及方便的Context Window上下文显示&#xff0c;像这样的东西非常有利于查看大量代…

html table nei边框线,GitHub - meichuanneiku/TableCell: 在TableBank的基础上,进一步标注到单元格精度,利用目标检测/分割实现单元格定位。...

项目说明本项目是我2019年7月份的实习工作的**展示与记录**&#xff1a;把倾斜的表格旋转水平&#xff1b;制作5000张表格数据集&#xff0c;需要标注每一个单元格&#xff0c;并实现单元格检测第一项比较简单&#xff0c;仿射变换、透视变换已经很成熟了&#xff0c;关键是第二…