我可以查询 Azure Web 作业队列吗?

我的 Azure Web 应用程序中运行了两个 Azure Web 作业:

  • 作业 A - 持续运行

  • 作业 B - 触发

作业 A 的目的是基于两件事触发作业 B:

  1. 作业 B 在过去一小时内未针对指定帐号运行(作为作业 A 的参数传入作业 B。

  2. 从数据库确定的其他一些业务逻辑

#2 很简单。我有一个问题是#1。作业 A 是否可以查询 Web 作业队列以查看作业 B 是否已执行?

这是作业 B(触发):

public class Functions

{

    public static void ProcessQueueMessage([QueueTrigger("triggeredqueue")] string message, TextWriter log)

    {

        var accountId = message;

        //DO STUFF WITH accountId HERE...

    }

 }

这是作业 A(连续运行)。我已经添加代码中的注释,以显示我什么喜欢做的事:


class Program

{

    static void Main()

    {

        while (true)

        {

            var accounts = getAccounts();

            foreach (var account in accounts) {

                if (testOtherBusinessLogic(account)) {

                    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConnectionStringHelper.StorageConnectionString);

                    CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

                    CloudQueue queue = queueClient.GetQueueReference("triggeredqueue");

                    queue.CreateIfNotExists();

                    //THIS IS WHAT IT IS DOING NOW:

                    CloudQueueMessage message = new CloudQueueMessage(account.AccountId);

                    queue.AddMessage(message);

                    //THIS IS WHAT I WOULD LIKE IT TO DO:

                    /* 

                    if (!queue.Any(x => x.RunDate > (DateTime.Now.AddMinutes(-60)) && x.Message == account.AccountId.ToString()) {                          

                        CloudQueueMessage message = new CloudQueueMessage(account.AccountId);

                        queue.AddMessage(message);

                    }

                    */

                }

            }

            System.Threading.Thread.Sleep(7000);

        }

    }

}


拉丁的传说
浏览 100回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP