您的位置:首页 > 其它

azkaban源码解读工作流状态Status(一)

2015-08-10 22:43 309 查看

工作流Status状态枚举:

  • READY
  • PREPARIN 
  • RUNNING
  • PAUSED
  •  SUCCEEDED
  •  KILLED
  •  FAILED
  •  FAILED_FINISHING
  •  SKIPPED
  •  DISABLED
  •  QUEUED
  •  FAILED_SUCCEEDED
  •  CANCELLED

其中,绿色代表完成态;红色代表运行态。

 

BlockingStatus——一种阻塞在非完成态的状态封装类

 

 

public Status blockOnFinishedStatus() {
if (status == null) {
return null;
}
//如果当前job状态为非完成态,则一直阻塞
while (!Status.isStatusFinished(status)) {
synchronized (this) {
try {
this.wait(WAIT_TIME);
} catch (InterruptedException e) {
}
}
}

return status;
}
//释放锁,唤醒一个等待者
public void unblock() {
synchronized (this) {
this.notifyAll();
}
}
public void changeStatus(Status status) {
synchronized (this) {
this.status = status;
if (Status.isStatusFinished(status)) {
unblock();
}
}
}

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: