首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用QueueOutput和InitialVisibilityDelay分离Azure函数

用QueueOutput和InitialVisibilityDelay分离Azure函数
EN

Stack Overflow用户
提问于 2022-11-08 18:46:20
回答 2查看 88关注 0票数 0

隔离的 Azure函数之前,可以创建一个输出绑定队列,如下所示:[Queue(...)] CloudQueue outputQueue

然后,我们可以添加一个新消息,它可以添加可见性延迟,如下所示:

代码语言:javascript
复制
var cloudQueueMessage = new CloudQueueMessage("some message");
var timespan = new TimeSpan(0, 10, 0);

outputQueue.AddMessage(cloudQueueMessage, initialVisibilityDelay: timespan);

既然我们已经将这些Azure函数迁移到隔离的模式,那么如何在消息中添加可见性延迟呢?

下面是微软网站的一个例子

如何使用隔离模式向消息添加可见性延迟?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-13 13:36:24

下面的Microsoft文档解释了为什么我不能在隔离模式之前实现我能够做的事情。隔离模式没有利用这些丰富的绑定类。

最后我做的是添加我自己的QueueClient并将其注入到函数中。

  • 在(1)处注入QueueClient
  • 在(2)处,我读取配置文件(local.settings.json),然后将该值传递给扩展方法,以验证和/或设置回退值。然后,我继续使用我的消息和可见性延迟调用SendMessageAsync()
  • At (3)是扩展方法(如果有人关心)

有了所有这些之后,我现在可以实现我的最初目标,并为可能需要利用QueueClient上的任何新特性做好准备,而在编写本报告时,绑定根本不提供这些特性。

谢谢

票数 0
EN

Stack Overflow用户

发布于 2022-11-12 17:43:45

  • await Task.Delay(n)(任务延迟模拟消息处理)在隔离Azure函数C#项目中为我工作,以延迟消息的可见性。
代码语言:javascript
复制
     [Function("Function1")]
        public async Task<HttpResponseData> RunAsync([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req)
        {
            _logger.LogInformation("C# HTTP trigger function processed a request.");

            var response = req.CreateResponse(HttpStatusCode.OK);
            response.Headers.Add("Content-Type", "text/plain; charset=utf-8");

            response.WriteString("Welcome to Azure Functions!");           
            for (var i = 0; i < 5; i++)
            {
                _logger.LogInformation($"Next visible {i}: {response.ToString()}");
                await Task.Delay(1000);
            }
            return response;

        }

结果:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74365737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档