問題タブ [azure-webjobssdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - Azure WebJob がすべての Blob を処理していない
gzip 圧縮されたファイルを Azure ストレージ コンテナーにアップロードします (入力)。次に、Blob を取得して解凍し、別のコンテナー (出力) にドロップする WebJob があります。どちらのコンテナーも同じストレージ アカウントを使用します。
私の問題は、すべてのブロブを処理しないことです。常に 1 つが欠落しているようです。今朝、11 個の BLOB を入力コンテナーにアップロードしましたが、処理されて出力コンテナーにダンプされたのは 10 個だけでした。4 をアップロードすると、3 が処理されます。11 個の BLOB がアップロードされているにもかかわらず、ダッシュボードには 10 個の呼び出しが表示されます。11 番目のブロブでトリガーされるようには見えません。1つだけアップロードすると、それを処理するようです。
Always On を true に設定して、標準モードで Web サイトを実行しています。
私が試してみました:
- Azure サンプル ( https://github.com/Azure/azure-webjobs-sdk-samples ) のようなコードを記述します。
- この記事 ( http://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-get-started )のコードのようなコードを記述します。
- CloudBlockBlobs の代わりに、入力と出力に Streams を使用します。
- 入力、出力、および Gzip ストリームを閉じるさまざまな組み合わせ。
- Unzip メソッドに UnzipData コードを含める。
これは私の最新のコードです。私は何か間違ったことをしていますか?
azure - WebJob スケジュールの作成中にエラーが発生しました
いくつかの Web ジョブと共に Web サイトを公開しようとしていますが、Azure Web サイトで Web サイトとジョブが作成された後、VS.NET 2013 に次のようなエラーが表示されます。
私の Web サイトには 2 つの Web ジョブがあり、1 つは継続的に実行され、作成されて実行されていますが、スケジュールに従ってトリガーする必要があるものにはこの問題があります。
ここで何が間違っているのかについてのアイデアはありますか?
編集 1
スケジュールされたジョブが「オンデマンド」として作成されることを追加したかっただけです
私が使用している公開の設定は次のとおりです。
ところで、AzureSDK を適用した後。2.5 発行時にエラーは表示されませんが、スケジュールされた Web ジョブが作成されません。
azure - Web ジョブの App.config ではなく、Azure 管理ポータルで Web ジョブの接続文字列を構成する必要があるのはなぜですか?
WebApp プロジェクトを右クリックし、新しい Azure Web プロジェクトを追加して、スケジュールされた Azure WebJob を作成しました。WebJob プロジェクトの App.config で、AzureWebJobsDashboard と AzureWebJobsStorage の接続文字列を設定します。ここでは、.cs ファイルの既定のコードをそのままにしておきます。次に、Visual Studio (ちなみに 2013 Update 4) から Azure Web サイトに発行しました。WebJob が作成され、Azure 管理サイトまたは Visual Studio から実行でき、成功しました。出力ログが期待される場所に表示されます。ただし、Azure Web ジョブの詳細ページには、次の警告/エラーが表示されます。
Microsoft Azure Web ジョブ ランタイム ログが格納されている Microsoft Azure ストレージ アカウントを指す次の形式 DefaultEndpointsProtocol=https;AccountName=NAME;AccountKey=KEY を使用して、Microsoft Azure Web サイト構成で AzureWebJobsDashboard という名前の接続文字列を設定していることを確認してください。
Microsoft Azure WebJobs ダッシュボードの構成が正しく設定されていません。Microsoft Azure Web サイトの構成で、次の形式を使用して、AzureWebJobsDashboard という名前の接続文字列を設定する必要があります。
また、 http: //azure.microsoft.com/blog/2013/07/17/windows-azure-web-sites-how-application-strings-and-connection-strings-work/へのリンクも提供します。エラーメッセージが表示される理由を説明しないでください。
ここで、この警告/エラーを解消するために、Azure 管理サイトの構成ページに同じ AzureWebJobsDashboard 接続文字列を追加します。
そのため、私が何か間違ったことをしたのか、それとも Microsoft がまだ修正していない Web ジョブの単なるねじれなのかを突き止めようとしています。さまざまな環境用に生成する各 Web サイトで忘れずに設定する必要があるのではなく、App.config でこれを使用できるようにしたいと考えています。
お時間をいただき、ありがとうございました。
azure-webjobs - スケジュールに基づいて Web ジョブ用に動的に BLOB に名前を付ける
WebClient 呼び出しの戻り値に基づいて BLOB を作成する Web ジョブがあります。これはうまくいっています。しかし、Blob 属性 (以下のコードを参照) からわかるように、ファイルの名前は静的です。そのため、ブロブ ストレージでは毎回上書きされます。
関数クラス:
メインメニュー:
プレースホルダーを使用して受信ファイルに動的に名前を付けるにはどうすればよいですか?
私はすでに次のことを試しました:
- ゴースト/{名前}
- ゴースト/{ブロブ名}
その他の注意事項:
このジョブはスケジュールに従って実行されるため、ホストは実行およびブロックされません。このジョブはトリガーによって呼び出されず、ウェイクアップして実行されるだけです。ソースはメッセージ キュー オブジェクトまたはアップロードされたファイルからのものではないため、この BLOB にどのような名前を付ければよいかわかりません。
おそらく何らかの方法で blob storage API を直接使用していますか?
azure-webjobs - Web サイトが再デプロイされると、継続的な Azure WebJob でプロセスを実行するとどうなりますか?
ここでは WEBJOBS_SHUTDOWN_FILE を使用し、ここではキャンセル トークンを使用して正常なシャットダウンについて読んだので、正常なシャットダウンの前提を理解していますが、キュー メッセージの処理中にある Web ジョブにどのように影響するかはわかりません。
シナリオは次のとおりです。
- キューをリッスンする機能を備えた Web ジョブがあります。
- メッセージがキューに追加され、ジョブが処理を開始します。
- 処理中に誰かが開発をプッシュし、再デプロイをトリガーします。
git プッシュでデプロイするために Web ジョブを接続していると仮定すると、このデプロイは Web ジョブの更新もトリガーし、(私が理解している限りでは) ジョブで何らかのシャットダウン ワークフローを開始します。そこで、いくつか質問があります。
- キュー メッセージの処理中のジョブは、ジョブが終了する前にメッセージの処理を終了しますか? または、シャットダウン通知は本質的に「この雌犬はシャットダウンしようとしています。それを処理するものが何もない場合、あなたはSOLです。」
- 私たちが SOL である場合、基本的にシャットダウンを処理するための最良のオプションは、実行していることを DB トランザクションと同等にラップし、シャットダウン時にすべての変更がロールバックされるようにシャットダウン ハンドラーを実装することですか?
- キュー メッセージの処理中に Web ジョブがシャットダウンした場合、そのメッセージは再度キューに入れられますか? そうでない場合、シャットダウン ハンドラがそのメッセージの再キューイングを処理する必要があるということですか?
- ジョブをシャットダウンする必要があることが通知された後、キューをリッスンしている関数がそれ以上のキュー メッセージを取得することは可能ですか?
ここでのガイダンスは大歓迎です!また、私が言及したもの以外に、ジョブのシャットダウンを処理する方法に関する他の有用なリンクがあれば、それらを共有していただければ幸いです。
c# - Azure Web ジョブと ServiceBusTrigger
Azure WebJobs SDK の有害メッセージ処理はどのように機能しますServiceBusTrigger
か? 「x」回以上デキューされた Service Bus キュー メッセージを別の ServiceBus (または) Storage キューにプッシュしようとしています。
こことここのオンライン ドキュメント、およびここの SDK サンプルには、ServiceBusTrigger に対する有害なメッセージの処理方法の例がありません。この作業は進行中ですか?
パラメータを使用してカスタム ポイズン メッセージ処理を実装しようとしdequeueCount
ましたが、ランタイム例外が発生したため、ServiceBusTriggers でサポートされているようには見えません。{"Cannot bind parameter 'dequeueCount' when using this trigger."}
azure - 連続 WebJob は自動的に停止します
継続的に実行するように構成された Web サイトに関連付けられた Web ジョブがあり、メッセージのキューを監視して処理するだけです。
私のウェブサイトは共有モードで、現時点ではトラフィックがほとんどないため、このテストの一環としてウェブサイトがシャットダウンされないように、1 分ごとにホームページを要求するダミー サービスをセットアップしました。予想通り、ウェブサイト自体がシャットダウンされていないことに気付くことができます。ただし、この Web ジョブは、Azure 管理ポータルにアクセスして Web ジョブの状態を確認しない限り、約 1 時間でシャットダウンし続けます。そこに行くとすぐに再起動し、数分から1時間でシャットダウンします。
この Web ジョブのログ ファイルには、次のような内容が表示されます。
Web サイトがまだ実行されており、ホームページが返されていることがわかりますが、ジョブ自体は停止しています。
管理ポータルにログインしてステータスを探すと、ログに次のように表示されます。
Web サイトがアクティブである限り Webjob がアクティブであることを確認するにはどうすればよいですか? または、少なくとも実行状態に戻ったときに、Web サイトが Web ジョブも開始するようにします。
更新 1
私の webjob 自体は、以下に示すように非常に単純なものです。
トリガー関数は次のようになります。
このジョブが Web サイトのライフサイクルに従う必要があることを示すために、ここで何かしなければならないことはありますか。つまり、Web サイトが開始されるたびに開始されます。
更新 2
Process Explorer を確認しようとしましたが、Web ジョブが停止すると、3 つのことのいずれかが表示されます。管理ポータルに行かずにジョブ ログを表示する方法がわからないため、現時点では実際のログがわかりません。
しかし、管理ポータルに移動するまでキューからのメッセージを処理しないため、ジョブが実行されていないことは確かです。
以下に示す pingdom の結果は、Web サイト自体が中断することなく実行されていることを示しています。
よろしくキラン