> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ETL: Xplenty入門 Part8: スケジュール設定

> Integrate.io ETLでジョブを定期実行するためのスケジュール設定とCron Expressionの使い方、クラスターのノード数や再利用ポリシーの設定方法を解説します。

こんにちは。今回はXplentyでのスケジュールの設定方法について紹介します。Xplentyでは、スケジュール設定時にいつどのタイミングで実行するかだけでなく、クラスターのパワーを設定します。（注：コネクターベースの料金プランの場合は、Nodeを追加購入した場合のみでNode数（クラスターのパワー）の増加が可能です。）

## 1. スケジュール設定

### 簡易なスケジュール設定

ITのバッググラウンドがないユーザ向けの簡単スケジュールです。

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/novice-part08-jp/image-1.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=a9bad73d05f07640b525b98695d27259" alt="novice-part08-jp image 1" width="1098" height="829" data-path="images/japanese-knowledge-base/novice-part08-jp/image-1.webp" />
</Frame>

タイムゾンの設定は、スケジューラーを作成時のみに設定可能であり、デフォルトの値はユーザがsettingsで設定したタイムゾーンになります。

<Frame>
  <img src="https://mintcdn.com/integrateio/u3KZjgbItgbZsh3u/images/japanese-knowledge-base/novice-part08-jp/image-2.webp?fit=max&auto=format&n=u3KZjgbItgbZsh3u&q=85&s=684d830c8fbe0894a4c634fd8b658469" alt="novice-part08-jp image 2" width="1099" height="829" data-path="images/japanese-knowledge-base/novice-part08-jp/image-2.webp" />
</Frame>

### Cron Expressionによるスケジュール設定

Xplentyでは、きめ細かいスケジュール設定のために通常の簡易なスケジューリング設定に加えて、Cron Expressionによる設定をサポートしています。
例えば、毎朝UTC8時（日本時間17時）にジョブを実行する場合、以下のように設定します。

<Frame>
  <img src="https://mintcdn.com/integrateio/u3KZjgbItgbZsh3u/images/japanese-knowledge-base/novice-part08-jp/image-3.webp?fit=max&auto=format&n=u3KZjgbItgbZsh3u&q=85&s=d01755e8ef51033da4f2255fcfd9a191" alt="novice-part08-jp image 3" width="1098" height="829" data-path="images/japanese-knowledge-base/novice-part08-jp/image-3.webp" />
</Frame>

**Allow concurrent schedule executionsについて**
同一スケジュールで実行された前のジョブが実行中の場合、新しく同一スケジュールで実行されたジョブの同時実行を許可するかどうかをコントロールするオプションです。
デフォルトでは、同じスケジュールで実行された前のジョブが実行中の場合、次の同一スケジュールはジョブの実行を行いません。前のジョブの状態に関係なくジョブを実行させたい場合は、同時実行を許可する「Allow concurrent schedule executions」オプションにチェックを入れてください。

<Frame>
  <img src="https://mintcdn.com/integrateio/u3KZjgbItgbZsh3u/images/japanese-knowledge-base/novice-part08-jp/image-4.webp?fit=max&auto=format&n=u3KZjgbItgbZsh3u&q=85&s=7aadc99619fe4019a957e6126e6d9465" alt="novice-part08-jp image 4" width="1097" height="829" data-path="images/japanese-knowledge-base/novice-part08-jp/image-4.webp" />
</Frame>

**Auto-retryについて**
設定したパッケージの実行が失敗(failed)した場合、失敗したパッケージだけを再実行する。（スケジューラーが再実行ではない！！）再実行で成功(complete)になると次の再実行は行いません。また、再実行の回数(デフォルトは３回)の調整が出来ます。

<Frame>
  <img src="https://mintcdn.com/integrateio/u3KZjgbItgbZsh3u/images/japanese-knowledge-base/novice-part08-jp/image-5.webp?fit=max&auto=format&n=u3KZjgbItgbZsh3u&q=85&s=38c5912a226101bd0fcd91aaf86fd15e" alt="novice-part08-jp image 5" width="1097" height="829" data-path="images/japanese-knowledge-base/novice-part08-jp/image-5.webp" />
</Frame>

## 2. Cluster設定

クラスター設定では、以下を設定します。

1. クラスターのパワー(Node数)をスライドで設定する
2. スケジュールで設定されたジョブが完了後どれくらいでクラスターをTerminateするかを決定する
3. クラスターのReuse(再利用ポリシー)の設定

<Frame>
  <img src="https://mintcdn.com/integrateio/u3KZjgbItgbZsh3u/images/japanese-knowledge-base/novice-part08-jp/image-6.webp?fit=max&auto=format&n=u3KZjgbItgbZsh3u&q=85&s=22891b2e2edbca11baba60b447123789" alt="novice-part08-jp image 6" width="1097" height="829" data-path="images/japanese-knowledge-base/novice-part08-jp/image-6.webp" />
</Frame>

ここでは、上記の中で最もわかりづらい、「3.クラスターのReuse(再利用ポリシー)の設定」について解説します。
クラスターを起動するには、最低30秒ほどの時間がかかります。そのため、スケジュール実行時にすでに起動済みのクラスターで、かつスケジュールで設定したノード数と同じかそれ以上のパワーを持つクラスターが存在する場合、新しくクラスターを起動せずに、既存のクラスターで処理するというオプションです。

<Frame>
  <img src="https://mintcdn.com/integrateio/u3KZjgbItgbZsh3u/images/japanese-knowledge-base/novice-part08-jp/image-7.webp?fit=max&auto=format&n=u3KZjgbItgbZsh3u&q=85&s=879a44b6f2720356ddd5318b4c751e1e" alt="novice-part08-jp image 7" width="1097" height="829" data-path="images/japanese-knowledge-base/novice-part08-jp/image-7.webp" />
</Frame>

| 再利用オプション                                      | 説明                                                                                                                                         |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| Any similar created by this schedule          | 同一スケジュールで起動されたクラスターが起動している場合、それ使用してスケジュールを実行します。                                                                                           |
| Any similar cluster                           | 例えば、スケジュールで2ノードと設定されたスケジュールを設定した場合、このスケジュールAが実行される際に別スケジュールBですでに3ノードのクラスターが起動していた場合、スケジューラAは新規に２ノードのクラスターを起動するのではなく、既存のクラスターを利用して処理を実行します。 |
| Any similar cluster with the same node count  | スケジューラーに設定したクラスタのノード数と同じクラスタが既に存在する場合、そのクラスタを利用する。該当するクラスタがない場合、クラスタを作成する                                                                  |
| Cluster with the least number of jobs running | 実行中のジョブ数が最も少ない、かつノード数がスケジューラーに設定したクラスタのノード数以下のクラスタを再利用する。**注意事項** - 競争状態に陥らないために、スケジューラーの起動感覚を何分ぐらいに開けて設定することをお勧めします。)                     |
| Never                                         | クラスターを再利用せず、毎回クラスターを新規に起動する。                                                                                                               |

**ヒント：**
上記3のReuse設定と上記２のどのタイミングでTerminateするかの設定をうまく利用することで、月間の最大利用可能ノード時間を効率的に使うことができます。

## 3. パッケージの設定

次はスケジューラーが起動するパッケージを追加します。Add packagesボタンを押下するとパッケージ追加画面に切り替わります。

<Frame>
  <img src="https://mintcdn.com/integrateio/u3KZjgbItgbZsh3u/images/japanese-knowledge-base/novice-part08-jp/image-8.webp?fit=max&auto=format&n=u3KZjgbItgbZsh3u&q=85&s=e9cf89fa95d8f73fe1e279588722a5e5" alt="novice-part08-jp image 8" width="1097" height="829" data-path="images/japanese-knowledge-base/novice-part08-jp/image-8.webp" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/integrateio/u3KZjgbItgbZsh3u/images/japanese-knowledge-base/novice-part08-jp/image-9.webp?fit=max&auto=format&n=u3KZjgbItgbZsh3u&q=85&s=8ca2a2a004e5534f9931bbc821f45257" alt="novice-part08-jp image 9" width="1097" height="829" data-path="images/japanese-knowledge-base/novice-part08-jp/image-9.webp" />
</Frame>

**Choose a package**にてドロップダウンにて追加するパッケージ１つを選びます。

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/novice-part08-jp/image-10.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=10cad2261ffb3b2789ca075bc2e533bc" alt="novice-part08-jp image 10" width="1035" height="621" data-path="images/japanese-knowledge-base/novice-part08-jp/image-10.webp" />
</Frame>

**Choose a package version**にて実行するパッケージのバージョンも指定出来ますが、デフォルトは最新バージョンを実行するようになっています。

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/novice-part08-jp/image-11.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=f85316462063e37248604314f5b283f2" alt="novice-part08-jp image 11" width="1044" height="275" data-path="images/japanese-knowledge-base/novice-part08-jp/image-11.webp" />
</Frame>

**特定バージョンのパッケージを実行したい場合**
特定バージョンの実行が必要な場合、下記の図のように「Always run the latest version of the package」のチェックを外すと各々バージョンが選択できるドロップダウン現れており、適切なバージョンを選んでください。

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/novice-part08-jp/image-12.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=a50c69d2fe4700f78b784b089b6178d5" alt="novice-part08-jp image 12" width="1037" height="603" data-path="images/japanese-knowledge-base/novice-part08-jp/image-12.webp" />
</Frame>

次は**Edit package variables**でパッケージ実行時の変数の設定です。
スケジューラーはデフォルトとして元々のパッケージに設定されている変数値をそのまま使います。

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/novice-part08-jp/image-13.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=bc280470306f34c30b4d7005a4005121" alt="novice-part08-jp image 13" width="1044" height="507" data-path="images/japanese-knowledge-base/novice-part08-jp/image-13.webp" />
</Frame>

もし、スケジューラーによる実行時のみに別の変数値を使いたい場合、既存変数の値を下記のように上書きが出来ます。

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/novice-part08-jp/image-14.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=d59010826164c8ddec35b63eb7a8f22b" alt="novice-part08-jp image 14" width="1043" height="504" data-path="images/japanese-knowledge-base/novice-part08-jp/image-14.webp" />
</Frame>

これでSaveボタンを押下すると１つのパッケージ追加が完了し、これを繰り返すとパッケージ設定が完了します。

## 4. スケジューラーの実行準備

最後のステップとしてInactiveになっているStatusを**Active**に切り替えます。後の参考のため、Descriptionにスケジューラーに対する説明を付けて保存してください。

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/novice-part08-jp/image-15.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=baefb13a05c1e9738ea4bff0f399c09f" alt="novice-part08-jp image 15" width="1097" height="829" data-path="images/japanese-knowledge-base/novice-part08-jp/image-15.webp" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/integrateio/S5PjFuXd0nNm4BaF/images/japanese-knowledge-base/novice-part08-jp/image-16.webp?fit=max&auto=format&n=S5PjFuXd0nNm4BaF&q=85&s=e3cf7c8447209ca7c8c662eeafdc73b3" alt="novice-part08-jp image 16" width="1202" height="829" data-path="images/japanese-knowledge-base/novice-part08-jp/image-16.webp" />
</Frame>

これでパッケージを定期実行するスケジューラーの設定が終わり、次は設定時間にパッケージの実行を待つだけです。
