我在轮询中使用 cron-scheduler 来每天运行计划的作业。 我的问题是,一旦应用程序启动并运行,这个 Poller 就不会启动。 在这里,我的要求是,一旦应用程序首次启动,Poll 就应该开始运行该作业。然后之后它应该每天运行。 目前,在CloudHub上部署后,我必须通过进入CloudHub上部署的应用程序内的调度程序来手动"立即运行"调度程序。 还有其他选择吗?谢谢。
更新
<quartz:connector name="QuartzConnector" doc:name="Quartz" validateConnections="true">
</quartz:connector>
<flow name="TestScheduleServiceFlow" >
<quartz:inbound-endpoint jobName="QuartzScheduler" connector-ref="QuartzConnector" doc:name="QuartzInbound" repeatCount="10" startDelay="0" cronExpression="0 0 12 * * ? *">
<quartz:event-generator-job groupName="TestScheduler" jobGroupName="TestScheduler">
<quartz:payload>This is a job scheduler that will write to file after every 10 seconds.</quartz:payload>
</quartz:event-generator-job>
</quartz:inbound-endpoint>
<logger level="INFO" doc:name="Logger" message="This flow will be launched once at startup of the application"/>
</flow>
如果您使用的是石英连接器,请将开始延迟添加为startDelay="0"
。这将在启动时触发流。
对于轮询连接器,可以使用开始延迟作为startDelay="0"
进行固定频率轮询,但如果使用的是 Cron 调度,则没有直接选项。但是,您可以使用具有startDelay="0"
和repeatCount="0"
的 Quartz 连接器轮询编写另一个流来调用您的流。这将确保您的流在启动时触发,并按照 cron 计划触发。