我之前已经实现过几次Spring批处理,但它设计为一天只运行一次。
现在,我有了一个新的要求,每当记录插入表中时,我都需要开始批处理。当插入新记录时,它将启动作业,批处理将生成PDF并将其保存在存储库中,并向用户发送邮件。
我不知道如何设计一天运行多次的spring批处理,或者在这种情况下使用spring批处理是否正确。有人能解释一下吗。谢谢
根据您的要求,您可以在@EntityListeners(如果使用Hibernate)的帮助下实现这一点。让我给你一个虚拟场景:-
@Entity
@Table(name="Order")
@EntityListeners(OrderListner.class)
public class Order{
@Id
public Integer id;
// other properties
}
这个听众:-
class OrderListner{
@PostPersist
public void doStartSchedulerCode(){
// You can call the code from here responobile for generating pdf and send mail,
}
}
每次您将在订单表中插入一行时,都会调用doStartSchedulerCode()。试试这个
您可以实现一个监听器来捕获数据存储在db中的时间(例如hibernate),然后使用CommandLineJobRunner手动启动作业。
请参见spring\u源
您可以多次运行它,只需注意批处理实例的标识符模式使用
我是Spring Batch的新手,相信我,那天我读了很多关于它的东西,试图熟悉它的概念。我对、、是如何工作的有点困惑,我想了解一些方面: 当您运行一个作业,并且名称已经在表中时,该作业不会启动。那么,为我的生成新名称的最佳方法是什么? 当我要启动我的作业时,总是生成一个新名称是一种好的做法吗? 因为作业应该计划运行多次。创建一个批处理(作业)的最佳实践是什么,该批处理(作业)计划运行多次而不生成
问题内容: 我有一个民意调查SCM工作,该工作每5分钟轮询一次Perforce的变化。但是我只需要在一天中对perforce中的文件进行第一次编辑时才触发作业。我可以限制民意调查SCM作业每天仅运行一次吗? 问题答案: 詹金斯(Jenkins)本身不提供这种行为(“每天仅针对第一个更改运行”)。 您需要将其分为两部分;第一个是轮询SCM,第二个要注意该作业每天运行不超过一次。 可能的解决方案: 保
有人可以建议我如何运行多个selenium脚本在一个单一的火狐浏览器和网络驱动程序应该被初始化只有一个和那太在父类,语言使用良好的java 谢谢
问题内容: 我们可以在语句中多次使用语句吗?我的T-SQL脚本很长,我想在中运行它。如果一切顺利,那么我将承诺否则将回滚。 但是,在运行该查询时,出现类似的错误。当我在其中创建和删除许多功能和过程时。 我没有在脚本中的任何地方使用过。我的问题是- 我可以在该长脚本中使用多次语句。因为创建一个批处理,并且如果该批处理第一次成功执行但下次失败,那么该语句是否能够实际回滚已执行的语句? 我的脚本结构如下
问题内容: 我可以运行多个JVM吗?如果是,那么我如何找到在哪个JVM上加载了特定的类? 问题答案: 您的意思尚不完全清楚,但是: 您可以在同一台计算机上安装多个VM(版本/品牌等) 您可以运行多个进程,无论是相同的JVM版本还是不同的JVM版本 除非您正在运行调试代理或类似的代理,否则我不知道有什么方法可以询问JVM进程是否加载了特定的类。似乎有点奇怪的要求-为什么要这样做?
问题内容: 我正在使用Node,并且需要使此功能每天在午夜运行,这可能吗? 问题答案: 我相信节点计划包将满足您的需求。通常,您希望所谓的cron安排和运行服务器任务。 使用 节点计划 :