howto schedule flow / add schedule / 아즈카반 스케쥴 추가 방법 / 잡 스케쥴 / 예약 / 배치 / batch /
Azkaban 에서 Schedule Flow 등록 방법
절차
- Projects
- --> 프로젝트 선택
- --> Flows tab 의
Execute Flow
button 클릭 - --> Execute Flow popup 에서
Schedule
버튼 클릭 - --> 팝업
- --> 스케쥴 정하고,
Schedule
버튼 틀릭
schedule 등록시 failure option 설정방법
- Failure Option 확인방법 : Azkaban Web Client –> Scheduling –> Scheduled Flows 에서 Execution Options 의 ‘Show’ 버튼 클릭
- Azkaban 에서 Schedule Flow 등록하는 방법
- API Documentation — Azkaban documentation
- How to change Azkaban Failure Options at schedule execution
schedule execution 에서는 기본적으로 Failure Option 이 Failure Current Running
이다. 위 3번째 링크에서는 schedule execution 을 추가할 때 Failure option을 Finish All Possible
로 설정하는 꼼수를 알려주는 듯 하다.
대략 훑어보면, Azkaban 의 API 를 이용하는 툴인 eboshi
를 이용해서 schedule 을 추가할 때는 failure option 을 변경해서 등록할 수 있는 듯 하다.
이 ‘eboshi’ 를 훑어보면, Azkaban API 자체에서 Failure Option 을 설정할 수 있도록 지원하는 듯 하다. 다음은 azkaban web ui 에서 schedule 을 등록할 때 발생하는 request 이다. request parameter 에 failureAction=finishCurrent
이 존재하고 있다. 그래서 web ui 에서 전송시점에 잘 변경하던지, azkaban api 로 schedule 을 추가할 때 option 으로 failureAction
을 주면 될 듯 하다.
curl 'http://localhost-azkaban.com/schedule' --compressed -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'X-Requested-With: XMLHttpRequest' --data-raw 'projectId=32&project=dev-test-sjima&ajax=scheduleCronFlow&flow=basic&disabled=%5B%5D&failureEmailsOverride=false&successEmailsOverride=false&failureAction=finishCurrent&failureEmails=namh%40userhabit.io&successEmails=¬ifyFailureFirst=false¬ifyFailureLast=false&concurrentOption=skip&projectName=dev-test-sjima&cronExpression=0+0+2+%3F+*+*+'
api 를 이용한 add schedule
아래의 curl 를 이용해서 finishPossible
옵션을 가진 job 을 schedule 에 추가할 수 있었다.
curl -k -d ajax=scheduleCronFlow -d projectName=my-projec-name -d flow=my-flow-name -d failureAction=finishPossible --data-urlencode cronExpression="0 23/30 5 ? * *" -b "azkaban.browser.session.id=xxxxxxxxxxxx" http://localhost:8443/schedule
Failure options
- Failure Current Running(finishCurrent) : 실패가 나면, 현재 실행되고 있는 job 만 끝내고, 더 이상 새로운 job 을 시작하지 않는다.
- Cancel All(cancelImmediately) : 실패가 나면, 모든 job 들을 kill 하고, flow 를 실패 시킨다.
- Finish All Possible(finishPossible) : 실패가 나도 dependency 들이 충족되는 한 계속해서 job 들을 수행한다.
- finishCurrent, cancelImmediately, finishPossible 관련 azakaban web source code : https://github.com/azkaban/azkaban/blob/35f7eb8ff4b40ef956e08689012d7a788f1ccbd4/azkaban-web-server/src/main/resources/azkaban/webapp/servlet/velocity/flowexecutionpanel.vm#L125
Screenshots
댓글 없음:
댓글 쓰기