从cron触发javaee批处理
JavaEE7AppServers支持实现JSR352(Glassfish和Wildfly-do)的批处理操作 从Unix cron启动批处理操作的好方法是什么从cron触发javaee批处理,java,cron,batch-processing,java-ee-7,Java,Cron,Batch Processing,Java Ee 7,JavaEE7AppServers支持实现JSR352(Glassfish和Wildfly-do)的批处理操作 从Unix cron启动批处理操作的好方法是什么 exec wget/curl启动批处理的rest servlet execjava通过JMX调用appserver(java启动速度慢,是否有JMX用于C?) ? JavaEE7通过注释支持cron作业。您可以使用方法激发批处理工作。以下是一个基本示例: @Singleton @Startup public class CronJob
- exec wget/curl启动批处理的rest servlet
- execjava通过JMX调用appserver(java启动速度慢,是否有JMX用于C?)
- ?
@Singleton
@Startup
public class CronJobs {
@Resource
TimerService timerService;
public void setTimer(long intervalDuration) {
Timer timer = timerService.createTimer(intervalDuration,
"Created new programmatic timer");
}
@Schedule(second = "0", minute = "0", hour = "*/1")
public void fireFooBatch() {
JobOperator jobOperator = BatchRuntime.getJobOperator();
Properties props = new Properties();
props.setProperty("someProperty", "someValue");
long execID = jobOperator.start("yourJob", props);
}
}
更多信息:
- 使用支持类似cron语法的@Schedule注释
- 使用ManagedScheduledExecutorService
如果希望使用curl调用,那么可以使用@GET annotation将代码放在REST端点中。在crontab中添加一个命令来调用此端点。谢谢,但这是从appserver内部开始的。我正在寻找从appserver外部触发批处理启动的最佳方法,即从cron中触发的shell脚本。如果您不满足于从appserver内部启动,则可能超出了规范的范围,并进入了特定于实现的解决方案。您正在使用哪个应用服务器和/或批处理实现?(我知道这是一个非常晚的答复,但可能仍然有一些价值)。问题是从应用服务器外部触发批处理作业,而不是JEE调度服务。许多IT运营部门希望通过企业调度系统(如cron或uc4)启动批处理作业。有人甚至可能试图从詹金斯那里触发。