加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – Azure服务总线队列触发器功能在运行一段时间后没

发布时间:2020-12-15 19:52:53 所属栏目:asp.Net 来源:网络整理
导读:我在Azure中有一个服务总线队列和一个服务总线队列触发器功能.当我第一次发布该函数并向服务总线队列发送消息时,该函数被触发并运行正常. 但是,如果我不管它并且不发送任何消息到队列说~1小时,然后我发送消息,该功能不会被触发.我必须通过按“运行”在门户中
我在Azure中有一个服务总线队列和一个服务总线队列触发器功能.当我第一次发布该函数并向服务总线队列发送消息时,该函数被触发并运行正常.

但是,如果我不管它并且不发送任何消息到队列说~1小时,然后我发送消息,该功能不会被触发.我必须通过按“运行”在门户中再次手动运行该功能,或者我必须将其重新发布到Azure.

我如何保持运行,所以我不必每小时左右重新启动它?
我的应用可能不会在几小时甚至几天内向队列发送新消息.

仅供参考 – 我读了here该功能在5分钟后关闭,如果是这种情况我不能使用功能而且我不想使用定时器触发器因为那时我会运行该功能然后我想要,浪费钱!对?
如果我唯一的,最好的选择是在一天中每隔30分钟运行一次计时器功能,我可能只需要这样做就行了,但我更喜欢在消息点击消息时运行该功能队列.

仅供参考 – 最终我想隐藏消息,直到某个日期,当我第一次将其推送到队列时(例如,设置为从放入队列的时间开始显示1周).我想要完成什么?我想在课程结束后向注册学生发送电子邮件,课程可能会提前1-30天安排.因此,当课程安排完成后,我不希望该功能在课程结束后运行,这可能是在我的应用程序中最初安排课程后的1周,2周2天,3周3天等.

这是function.json的片段

{
"generatedBy": "Microsoft.NET.Sdk.Functions-1.0.0.0","configurationSource": "attributes","bindings": [
{
  "type": "serviceBusTrigger","connection": "Yogabandy2017_RootManageSharedAccessKey_SERVICEBUS","queueName": "yogabandy2017","accessRights": "listen","name": "myQueueItem"
}
],"disabled": false,"scriptFile": "..binPostEventEmailFunction.dll","entryPoint": "PostEventEmailFunction.Function1.Run"
}

这是功能

public static class Function1
{
    [FunctionName("Function1")]
    public static void Run([ServiceBusTrigger("yogabandy2017",AccessRights.Listen,Connection = "Yogabandy2017_RootManageSharedAccessKey_SERVICEBUS")]string myQueueItem,TraceWriter log)
    {
        log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");


    }
}

我被要求发布我的付款计划

解决方法

我怀疑你正在使用下面的场景1和场景2 – 这将在一段时间没有活动后关闭.

>免费/共享应用服务计划中的功能应用程序. Always On无法使用,因此您可以升级您的计划.
>基本/标准/高级应用服务计划上的功能应用程序.您需要确保在“应用程序设置”功能中选中“始终打开”
>如果使用消费计划的功能应用程序,这应该工作.它将在每个请求上唤醒功能应用程序.对于您的场景,我建议使用此方法,因为它仅在需要时使用资源.

FYI1 – 如果你完成上述工作,你将不需要计时器.

应用程序设置中的消耗计划如下所示:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读