초급 Part08: 스케줄 설정

안녕하세요. 이번에는 Xplenty에서 스케쥴의 설정방법을 소개합니다. Xplenty는 스케줄을 설정할 때 언제 어느 시점에서 실행할지 뿐만 아니라 클러스터의 파워를 설정합니다.
커넥터 기반 요금 플랜을 선택한 경우, Node를 추가 구입한 경우에만 Node 수 - 클러스터의 파워 - 의 증가가 가능합니다.

1. 스케줄 설정

간이 스케줄 설정

IT 에 대한 지식이 없는 사용자를 위한 간이 스케줄 설정입니다.

thumbnail image

타임존 설정은 스케줄러 생성 시에만 설정 가능하며, 기본값은 사용자가 settings에서 설정한 타임존입니다.

thumbnail image

Cron Expression으로 일정 설정

Xplenty는 세분화된 스케줄링을 위해 일반적인 간이 스케줄링 설정 외에도 Cron Expression의 설정을 지원합니다. (Cron Expression의 설정확인 : https://crontab.guru/)
예를 들어 매일 아침 UTC 08시(KST 17시)에 작업을 실행하는 경우 다음과 같이 설정합니다.

thumbnail image

Allow concurrent schedule executions에 대하여
일반적으로 스케줄의 간격이 짧은 경우나, 잡의 실행이 설정한 스케줄의 주기보다 길게 실행되는 경우, 같은 스케줄로 인해 시간차를 두고 두 개의 잡이 같이 실행 되게 됩니다.
Xplenty에서는 기본적으로 스케줄에 의한 동시 실행을 막고 있기에 동일한 스케줄에서 실행된 선행 잡이 아직 실행 중이면 동일한 스케줄에 의한 후속 잡의 실행은 건너 뛰게 됩니다.
하지만, 선행 잡의 상태에 관계없이 후속 잡을 그대로 실행 하려면  "Allow concurrent schedule executions" 옵션을 선택하십시오.

thumbnail image

Auto-retry에 관하여
설정한 패키지 실행이 실패(failed)한 경우, 실패한 패키지만 재실행합니다. (스케줄러가 재실행되는 것이 아닙니다!!) 재실행에서 패키지가 성공(complete)하면 다음 재실행은 수행하지 않습니다. 또한 재실행 횟수(기본값은 3회)를 조정할 수 있습니다.

thumbnail image

2. Cluster 설정

클러스터 설정에서는 다음을 설정합니다.

  1. 클러스터의 파워 - Node 수 - 를 슬라이드로 설정

  2. 스케줄로 설정된 작업이 완료된 후 얼마나 빨리 클러스터를 종료할지 결정

  3. 클러스터의 Reuse - 클러스터 재사용 정책 - 설정

thumbnail image

이 섹션에서는 설정 중에서 가장 이해하기 어려운 3. 클러스터의 Reuse - 재사용 정책 - 설정에 대해 설명합니다.
클러스터를 시작하는 데는 최소 30초 정도의 시간이 소요됩니다. 따라서 스케줄을 실행할 때 이미 클러스터가 존재하고 스케줄에서 설정한 노드 수와 같거나 더 많은 노드를 가진 클러스터가 있는 경우, 일부러 새 클러스터를 시작하지 않고 기존의 클러스터에서 잡을 실행시키는 옵션 입니다.

thumbnail image

재사용 옵션(Reuse) 설명
Any similar created by this schedule 동일한 스케줄로 시작된 클러스터가 시작된 경우 이를 사용하여 스케줄을 실행합니다.
Any similar cluster 예를 들어 스케줄 A에서 2노드 클러스터로 설정하였습니다. 스케줄 A가 실행될 때 다른 스케줄 B에서 이미 3노드 클러스터를 사용하고 있는 경우, 스케줄러 A는 새로운 2노드 클러스터를 시작하는 대신 기존의 3 노드 클러스터를 활용하여 잡을 실행 합니다.
Any similar cluster with the same node count 스케줄러에 설정된 클러스터의 노드 수와 동일한 클러스터가 이미 존재하는 경우, 해당 클러스터를 이용한다. 해당 클러스터가 없는 경우, 클러스터를 생성한다.
Cluster with the least number of jobs running

실행 중인 작업 수가 가장 적고, 노드 수가 스케줄러에 설정된 클러스터의 노드 수 이하인 클러스터를 재사용한다.

주의사항 - 경쟁 상태에 빠지지 않도록, 스케줄러의 시작을 각각 몇 분 간격으로 떨어뜨려 설정하는 것을 권장합니다.

Never 클러스터를 재사용하지 않고 매번 설정한 노드의 클러스터를 새로 시작합니다.

힌트 : 3의 Reuse 설정과 2의 InActive 시간에 의한 클러스터의 종료(Terminate) 시점의 설정을 잘 이용하여, 월별 최대 노드 사용시간을 효율적으로 절약할 수 있습니다.

3. 실행 할 패키지 설정

다음으로 스케줄러가 실행할 패키지를 추가합니다. Add packages 버튼을 누르면 패키지 추가 화면으로 전환됩니다.

thumbnail image

thumbnail image

Choose a package에서 드롭다운을 통해 추가할 패키지 하나를 선택합니다.

thumbnail image

Choose a package version에서 실행할 패키지의 버전도 지정할 수 있지만, 기본값은 최신 버전을 실행하도록 설정되어 있습니다.

thumbnail image

특정 버전의 패키지를 실행하고 싶은 경우
특정 버전의 실행이 필요한 경우, 아래 그림과 같이 “Always run the latest version of the package”의 체크를 해제하면 각 버전별로 선택할 수 있는 드롭다운 메뉴가 나타나며, 적절한 버전을 선택해 주세요.

thumbnail image

다음은 Edit package variables에서 패키지 실행 시 변수 설정입니다.
스케줄러는 기본적으로 원래 패키지에 설정된 변수 값을 그대로 사용합니다.
thumbnail image

만약 스케줄러에 의한 실행 시에만 다른 변수 값을 사용하고 싶다면, 기존 변수의 값을 아래와 같이 덮어쓸 수 있습니다.(추가는 불가능)

thumbnail image

이제 저장 버튼을 누르면 하나의 패키지 추가가 완료되며, 이를 반복하면 패키지 설정이 완료됩니다.

4. 스케줄러 실행 준비

마지막 단계로 비활성화(Inactive) 상태인 상태(Status)를 활성화(Active)로 전환합니다. 추후 참고를 위해 설명(Description)란에 스케줄러에 대한 설명을 추가하여 저장해 주세요.

thumbnail imagethumbnail image

이로써 패키지를 정기적으로 실행하는 스케줄러 설정이 완료되었으며, 이제 설정된 시간에 패키지 실행을 기다리면 됩니다.