elastic job源码分析 - 作业触发监听管理器

作业触发监听管理器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();
}

事件通知后,会把该节点的值重置为空("")。

你可能感兴趣的:(elastic job源码分析 - 作业触发监听管理器)