2016-12-16 25 views
0

WebJobはSettings.job '0 0/10 * * *'を介して実行するようにスケジュールされており、昨夜は正常に機能していました。最後の呼び出しのためのeventlog.xmlに周りを見て、私はCRONスケジュールされたWebJobが突然終了する

<EventData> 
      <Data>7192</Data> 
      <Data>LogCleanup</Data> 
      <Data>Role environment . FAILED TO INITIALIZE. hr: -2147024891</Data> 
</EventData> 
この後にこれ以上のコール

以下を参照してください、私は手動で今朝ポータルからジョブを実行し、それがうまく働いて、再びeevery 10分と呼ばれています予想通り。私NLog内部ログファイルが

2016-12-15 21:40:02.6449 Error Error has been raised. Exception: Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (409) Conflict. ---> System.Net.WebException: The remote server returned an error: (409) Conflict. 
    at System.Net.HttpWebRequest.GetResponse() 
    at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) 
    --- End of inner exception stack trace --- 
    at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) 
    at Microsoft.WindowsAzure.Storage.Table.TableOperation.Execute(CloudTableClient client, CloudTable table, TableRequestOptions requestOptions, OperationContext operationContext) 
    at Microsoft.WindowsAzure.Storage.Table.CloudTable.Execute(TableOperation operation, TableRequestOptions requestOptions, OperationContext operationContext) 
    at NLog.AzureTableStorage.AzureTableStorageTarget.Write(LogEventInfo logEvent) 
    at NLog.Targets.Target.Write(AsyncLogEventInfo logEvent) 
Request Information 
RequestID:1153c4ed-0002-000e-611b-57d353000000 
RequestDate:Thu, 15 Dec 2016 21:40:02 GMT 
StatusMessage:Conflict 
ErrorCode:EntityAlreadyExists 
と呼ばれていた最後の実行

エラーが私にはどんな意味がありませんが、仕事はちょうどと呼ばれて辞めなぜ大きな疑問がある?のために、以下のログイン1回の実行で何らかの説明できないエラーが発生し、スケジューラがそれを呼び出すことをやめたと思われます。

WebJobsの信頼性はどれくらいですか? 呼び出されたことを検証するためには、どのようなチェックが必要ですか?

+0

もう少し読んだ後で、これはホスティングアプリで「常にオン」にしていないと発生するエラーかもしれないと思います。 – Mikee

答えて

1

Webアプリケーション用にAlwaysOnが有効になっていることを確認してください。 CRONのスケジュールされた仕事はこれを必要とします - 文書hereを見てください。ランタイムは、AlwaysOnを有効にしていないことが検出された場合、実際にログに警告を出します。

[常にオン]はこのWebアプリケーションでは有効には見えません。 のSCMホストがアイドル状態のときに連続ジョブが実行を停止しないようにするには、Web Appの構成設定 で「常にオン」を有効にすることを検討してください。注:「常にオン」は、Basic、 スタンダードモードとプレミアムモードでのみ使用できます。

この場合、WebJob logsを確認してください。表示されます。そのログのアイデアは、ユーザーがこれを自動診断するのを助けることでしたが、おそらくあなたはそれを見ませんでしたか? WebJobが連続しているが、AlwaysOnが有効になっていないことが検出された場合、WebJobのポータルに警告が表示されます。この警告は、WebAppの設定ページのAlwaysOn設定によって表示されます。

+0

私は上記で認識しているロギングを示しています。新しいポータルインターフェイスは非常に恐ろしいところです。ここで特に言及しているロギングを見つけることができますか? – Mikee

+0

私が言及したAlwaysOnの警告は、あなたのWebJobのログファイルに書き込まれています。そのWebJobの場所は、wikiの[here](https://github.com/projectkudu/kudu/wiki/WebJobs#logging)の場所です。ポータルベースの警告は、この設定を有効にしないでWebJobが連続していることが検出されたときに、WebAppのアプリケーション設定ブレードにAlwaysOnトグルで表示されます。私は、WebJobsのメインブレードにも表示されるかもしれないと思います。私は覚えていません。 – mathewc

+0

cronでスケジュールされたwebJobが継続的な仕事として指定されるべきであることを意味していますか? webjob-publish-settings.jsonに「OnDemand」とマークされています。 – Mikee

関連する問題