こんにちは、サイオステクノロジー技術部武井です。
今回は、Azure WebJobsによる継続的なジョブの実行ついて書きたいと思います。
Azure WebJobsの継続的なジョブの実行とは?
前回はAzure WebJobsにて、Linuxのcrontabのような定期的なバッチの実行方法を記載しました。今回は、常駐するデーモンプロセスのような、継続的に実行が必要なジョブを動かすための方法を記載したいと思います。
設定方法
「Azure Storageキューによる非同期処理」で作成したのをAzure WebJobsで実行してみます。
これは、Azure Storageキューを定期的にチェックするWokerプロセスです。こういうのは今回ご紹介するような方法でやらないと、うまくいきません。実はこれをしらないうちは、最初、前回のような方法でやっていて、すぐプロセスが落ちてしまっていて、ハマりました。
まず、「Azure Storageキューによる非同期処理」作成したJavaのプログラムをjar(ファイル名:vm-poweroff.jar)にビルドします。そして、そのjarと以下内容が記載さたファイル(ファイル名:run.cmd)を作成します。
set PATH=%PATH%;%JAVA_HOME%/bin java -jar worker.jar com.sios.azure.Worker
上記の2つのファイルをZIPに固めます。後ほど使いますので、大事に取っておいて下さい。
Azure portalにログインして、左部メニューより「App Service」をクリックします。
「追加」をクリックします。
「Web App」をクリックします。
「作成」をクリックします。
「アプリ名」にAzure App Serviceを識別する任意の名称、その他は適宜必要に応じて入力をして、最後に「作成」をクリックします。
Azure App Serivceの一覧に先程作成したアプリが表示されますので、クリックします。
「Webジョブ」をクリックします。
「+追加」をクリックします。
「名前」に任意のWebジョブ名、「ファイルのアップロード」に先程作成したZIPファイル、「種類」に「継続」、「スケール」に「単一インスタンス」と選択します。最後に「OK」をクリックします。
これで完了です。