6

Azure Storage Queue からトリガーする必要がある Azure WebJobs QueueTrigger メソッドに関して、私が間違っていることを見つけようとしています。

いくつかのドキュメントを読みました (ブログの投稿や msdn の記事など)。しかし、私はまだ明確ではありません。

主な質問/誤解されている側面:

Azure ストレージ コンソール アプリ App.config または Windows Azure 構成 (ポータル) の接続文字列の名前は何ですか。これまでのところ、両方の場所に次の名前を設定しています。

  • Azureジョブストレージ
  • AzureWebジョブストレージ
  • Azureジョブランタイム
  • Azureジョブダッシュボード
  • AzureJobsData

これが私の WebJobs コンソール アプリ コードです。

static void Main()
{
    JobHost host = new JobHost();
    host.RunAndBlock();
}

public static void CreateLeague([QueueTrigger("temp")] string msg)
{
    var task = JsonConvert.DeserializeObject<QueueTask>(msg);

    if (task.TaskType == QueueTask.TaskTypes.Pdf)
      RenderPdf(task.Id);
}

このコンソール アプリは、Azure Web サイトで継続的に実行されています。

出力を切り替えることができる「デバッグ」ページにアクセスでき、起動/実行されていることがわかります。

キューを追加するコード (ASP.NET MVC アプリから):

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference("temp");
queue.CreateIfNotExists();
Common.QueueTask task = new Common.QueueTask();
task.TaskType = Common.QueueTask.TaskTypes.Pdf;
task.Id = p.Id;
CloudQueueMessage msg = new CloudQueueMessage(JsonConvert.SerializeObject(task)      );
queue.AddMessage(msg);

このコードが実行され、ストレージ アカウントにキューが追加されます。しかし、それらは Web ジョブから「デキュー」または読み取りを取得しませんでした。

4

3 に答える 3

0
  1. VS でサーバー エクスプローラーを使用して、ストレージ キューの内容を調べることができます。
  2. WebJobs SDK のキュー トリガーは、実行する作業がない場合、指数関数的に元に戻ります。メッセージがキューに入れられてから取得されるまでに遅延が生じる場合があります。プロパティを使用して最大バックオフを構成できますJobHostConfiguration.Queues.MaxPollingInterval
  3. 最新の SDK では、2 つのストレージ接続文字列AzureWebJobsStorageAzureWebJobsDashboard

これは、より多くのリソースに最適な場所です: https://docs.microsoft.com/en-us/azure/app-service-web/websites-webjobs-resources

于 2014-10-16T19:32:13.007 に答える