SOS JobSchedulerでのパラメータの受け渡しと日本語について

SOS JobSchedulerについてはいろいろと説明してきましたが、今後はより実践的な内容に移っていきたいと思います。
まず最初は、ジョブチェーン内での値の受け渡しと日本語の取り扱いについてです。

ジョブチェーンへの値の引き渡し

JOE(JobScheduler Object Editor)やJOC(JobScheduler Operation Centre)で、実行するジョブ及びジョブチェーンに対してパラメータを引き渡す方法については、これまでの記事で既に説明しました。

JOEではジョブやジョブチェーンの作成時にパラメータ値をあらかじめセットしておくことが出来ます。また、オーダーの作成時にも、オーダーごとに異なるパラメータ値をセットできるのでした。
JOCでもジョブの実行時や、ジョブチェーンを実行するためにオーダーを作成する際にパラメータ値をセットできます。

一方、ジョブ側では、$SCHEDULER_PARAM_という接頭辞を付けて、セットされたパラメータ値を受け取ります。

BACKUP_DIR=$SCHEDULER_PARAM_BACKUP_DIR

ジョブ内での値のセット

ジョブチェーン内で、前ジョブで発生した値を、次ジョブに引き渡したいということがあると思います。
前ジョブでの実行結果によって、次ジョブの挙動が変わるようなケースですね。

FOOというパラメータ名でbarという次ジョブに引き渡したい時は、前ジョブに以下のようなコードを書きます。

echo "FOO=bar" >> $SCHEDULER_RETURN_VALUES

次ジョブでは、以下のようなコードで受け取ります。

FOO=$SCHEDULER_PARAM_FOO

つまり、$SCHEDULER_RETURN_VALUESに出力したパラメータはジョブチェーン内では、JOEやJOCでセットされたパラメータと同様の方法で取得できます。このパラメータ値はジョブチェーン内で共有されます。

日本語の受け渡しについて

JobSchedulerにおける日本語の取り扱いの現状は、あまり充実しているとは言えません。ただ、公式FAQにあるように、必要最低限の受け渡しは可能です。

At present (12/2010) the JobScheduler is able to accept all Unicode characters in the scheduler log.
E.g, if your script or program, executed under control of JobScheduler, put some Unicode-characters to stdout or stderr, this will be shown correctly.
(中略)
One major topic on the road-map of JobScheduler is the translation (i18n = internationalization) of all texts.
(後略)

Support of Unicode or UTF-8 (e.g. Japanese language) in addition to English

ここまでに説明したパラメータの受け渡しと、JobSchedulerがジョブの実行の度に出力するログについては、UTF-8の日本語を通します。

ただ、ケースによっては日本語をあらかじめMIMEエンコーディングして渡して、nkfなどでデコードして受け取るといった工夫に迫られるケースが出てくる可能性はあります。(少ないとは思いますが・・・)

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。2018年、株式会社ビビンコを北九州市に創業。IoTソリューションの開発・導入や、画像認識モデルを活用したアプリの開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。