0

我正在尝试找到在 Azure 函数中拥有单个持久变量的最直接方法。用例如下:

1) 检查网站上的数字(例如 76);

2) 如果数字大于当前数字(例如 72),则针对每个新数字(例如 73、74、75、76)向用户发送电子邮件;

3)每小时运行一次以上。

函数运行后保存新号码的最佳方法是什么?

谢谢,我感谢您对最佳实践的任何想法。

兆瓦

4

1 回答 1

0

您可以使用队列存储来实现它,将变量 num 设置为队列(例如 72),在函数中检索它并将其与您发送的数字进行比较(我使用 HTTP 触发器进行测试)。将队列(72)出列并添加一条具有最大值的新消息。下面是我的测试代码。

 [FunctionName("Function1")]
    [return: Queue("number")]
    public static async Task<string> RunAsync(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");

        // Parse the connection string and return a reference to the storage account.
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(Environment.GetEnvironmentVariable("AzureWebJobsStorage"));

        CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

        // Retrieve a reference to a queue
        CloudQueue queue = queueClient.GetQueueReference("number");

        // Async dequeue the message
        CloudQueueMessage retrievedMessage = await queue.GetMessageAsync();
        await queue.DeleteMessageAsync(retrievedMessage);

        int numval = Convert.ToInt32(retrievedMessage.AsString);

        int num = Convert.ToInt32(req.Query["num"]);

        num = Math.Max(num, numval);

        return num.ToString();

    }
于 2019-10-09T08:49:20.247 回答