AzurePaaS研究サイト

~理解しずらい情報をシンプルにお伝えします~

AppServiceのWebジョブとは(概要・作成方法・トラブル対応)

Webジョブとは

 
AppService の機能の1つです。
課金については、AppServiceプラン上で実行されるので、プラス料金は発生しません!ご安心ください。
 
f:id:nanacy7741:20210716165140p:plain
 
f:id:nanacy7741:20210716165334p:plain
 
 

軽く仕組みを説明しますと、AppService のアプリケーションの子プロセスとして実行されます。
 
そして、非同期プロセスで実行されるので、AppServiceアプリケーション(親プロセス)ではやらせたくない時間がかかる処理などを、Webジョブでやらせたりします。
 
 

kudu(scm)サイトの Process Explorer で見ると、Webジョブが子プロセスであることを確認できます。
 
f:id:nanacy7741:20210716170129p:plain
 
 
 
そして、Webジョブには「継続的ジョブ」「トリガージョブ」の2種類あります。
 

継続的ジョブ

 
(記載中)
 

トリガージョブ(スケジュール、手動)

トリガーを選択した場合は、「スケジュール」「手動」のいずれかの起動方法を選択します。
 
スケジュールを選択した場合は、
0 /15 * * * (15分ごとの実行スケジュールの例)
のように CRON 式を設定します。
 
 

スケジュール設定(CRON 式)

 
Web ジョブ を API で設定された場合、スケジュールが指定されていない状態に更新されてしまう場合があります。 CRON 式を設定する部分が、空、または不正な設定文字列である場合に、スケジュール設定が null として設定され、スケジュールが指定されていない状態となってしまうんです。(知られてない情報)
 
ポータル画面からスケジュール設定を行なう場合は、入力必須項目になってるので、null が設定されてしまう心配はありません。
 
Web ジョブスケジュール設定用 API

github.com

 

スケジュール確認

 
以下の REST API を使って、スケジュール設定をご確認しましょう。
 
REST API URL:https ://{sitename}.scm.azurewebsites.net/api/triggeredwebjobs/{jobname}  

blog.amitapple.com

===== 抜粋 ここから =====
Debugging a schedule
To see the scheduler logs for a scheduled WebJob you need to use the get triggered WebJob api, go to the url: https ://{sitename}.scm.azurewebsites.net/api/triggeredwebjobs/{jobname} (remove the job name to see all triggered WebJobs).
===== 抜粋 ここまで =====
 

settings.job ファイル

 
スケジュール(CRON 式)設定について、settings.job ファイルに、"schedule" を設定する必要があります。
Azure 側はこの設定をみて、Web ジョブを実行しています。

github.com

===== 抜粋 ここから =====
To schedule a triggered WebJob you need to add a schedule property to the settings.job file.
 
(機械翻訳)
トリガーされた Web ジョブをスケジュールするには、settings.job ファイルにスケジュールプロパティを追加する必要があります。
===== 抜粋 ここまで =====
 

常時接続を有効にする(継続的・トリガー共通)

 
AppService の常時接続設定が有効である必要があります。

docs.microsoft.com

===== 抜粋 ここから =====
[常時接続] : トラフィックがない場合も、アプリを読み込まれたままにします。
継続的な Web ジョブや、CRON 式を使用してトリガーされる Web ジョブに対して有効にする必要があります。
===== 抜粋 ここまで =====
 
 

デバッグログで実行されているか確認(継続的・トリガー共通)

 
以下を参考に、デバッグログを処理の先頭部分に挿入し、ログが出力されるか(該当の Web ジョブが処理開始されているか)を確認しましょう。

blog.shibayan.jp

 
 

ご意見・ご要望はこちらへ