私の質問は以下の質問に似ています。
NoAutomaticTrigger タイプのジョブの継続的な Azure WebJob が停止しているときの通知
Amit のブログのアイデアを使用しましたが、ちょっとした障害にぶつかりました。
Web ジョブがポータルからシャットダウンされた場合にトリガーされるファイル ウォッチャーを Web ジョブに設定しています。
Web ジョブが終了する前に、ストレージ テーブルのいくつかのフラグを更新する必要があります。
問題は、ストレージ テーブルからレコードを取得しようとしている時点でコードが停止しているように見えることです。以下のコードの周りに例外ハンドラーがあり、コンソールに例外メッセージが書き込まれません。
以下は私のコードです
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("my storage key");
var tableClient = storageAccount.CreateCloudTableClient();
var table = tableClient.GetTableReference("myTable");
TableOperation operation = TableOperation.Retrieve("partKey", "rowKey");
var result = table.Execute(operation); // stucks here
if (result.Result != null)
{
MyEntity entity = (MyEntity)result.Result;
if (entity != null)
{
entity.IsRunning = false; //reset the flag
TableOperation update = TableOperation.InsertOrReplace(entity);
table.Execute(update); //update the record
}
}
stopping_wait_time
inを 300 秒に増やしましたsettings.job
が、まだ運がありません。