作业触发监听管理器io.elasticjob.lite.internal.instance.TriggerListenerManager
启动作业触发监听器io.elasticjob.lite.internal.instance.TriggerListenerManager.JobTriggerStatusJobListener
监听当前实例在zk路径上的值改变事件。
if (!InstanceOperation.TRIGGER.name().equals(data) || !instanceNode.isLocalInstancePath(path) || Type.NODE_UPDATED != eventType) {
return;
}
一般情况下,设置节点jobName/instance/实例ID
的值为TRIGGER
时,可以触发实例立即执行任务,但任务正在执行中除外。
if (!JobRegistry.getInstance().isShutdown(jobName) && !JobRegistry.getInstance().isJobRunning(jobName)) {
JobRegistry.getInstance().getJobScheduleController(jobName).triggerJob();
}
事件通知后,会把该节点的值重置为空("")。
网友评论