我需要能够仅更改配置值来启用/禁用一组作业。
到目前为止,我所做的一切都是这样的。
<property name="cronExpression" value="#{${child.system.batch.jobs.enabled}==true?'${batch.poll.queue.cron.expression}':'0 0 0 1 1 ? 2099'}" />
它的作用是检查 child.system.batch.jobs.enabled 如果启用了它,只需使用配置的cron表达式,但是如果它被禁用,那么将来只需要一个cron 。
这对我来说似乎很干净。但是,我认为我们有可能在某些时候在启动时运行所有批处理作业,配置如下:
spring.batch.job.enabled=true
但是如果我们这样做,我实现的解决方案将无法工作,因为无论将来的cron表达式如何,该作业将在启动时执行。
所以我需要的是像
<job id="myJob" enabled="${child.system.batch.jobs.enabled}" >
但我不知道这是否可行。当然,如果启用或禁用标志,我不想为每个作业添加属性并以编程方式检查java代码。
谢谢!