当前位置: 首页 > 知识库问答 >
问题:

Azure服务总线队列触发函数在运行一段时间后没有接收到我排队的消息

濮君植
2023-03-14

我在Azure中有一个服务总线队列和一个服务总线队列触发函数。当我第一次发布函数并向服务总线队列发送消息时,函数被触发并正常运行。

但是如果我不去处理它,并且在大约1个小时内不向队列发送任何消息,然后我发送了一条消息,那么函数就不会被触发。我必须通过按'run'在门户中再次手动运行该函数,否则我必须重新将其发布到Azure。

我如何保持它运行,这样我就不必每一个小时左右重新启动它???我的应用程序可能几个小时甚至几天都不会向队列发送新消息。

{
"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": "..\\bin\\PostEventEmailFunction.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个答案

鲜于凯歌
2023-03-14

我怀疑您正在使用下面的场景1和2--在一段时间没有活动后将关闭。

>

  • 免费/共享应用程序服务计划上的功能应用程序。总是打开是不可用的,所以你将有升级你的计划。

    基本/标准/高级应用程序服务计划上的功能应用程序。您需要确保在function Application设置中选中始终打开

  •  类似资料:
    • 在.NET core 2.0中使用创建时,我遇到了一个问题。 在体系结构中,当在用于创建用户的队列中创建新消息时,服务必须接收该消息并根据其中的信息在数据库中创建用户。 在Visual Studio2017中,我在下创建了一个新项目。 这种的正确实现是什么?在GitHub上有什么例子吗?提前道谢。

    • 我写了C#程序,发送消息到Azure服务总线队列,这是正常工作。现在,我需要通过Azure函数将服务总线队列中收到的消息传递到数据湖,但据我所知,Azure函数不支持数据湖的绑定/触发器。是否有任何方法触发到Azure Data Lake的服务总线队列消息?提前感谢。

    • 我的设置: 我创建了一个没有启用会话的Azure服务总线队列 我有一个使用触发器 触发器间隔为 我的结果: 我正在以超过15秒的速度将消息放入队列 我的Azure逻辑应用触发器一次拾取多个队列消息,比每15秒拾取一条消息快得多 我的问题: 此连接器的触发器是否设计为一次拾取多条排队消息(在?)

    • 我试图使用服务总线队列作为IoT中心终结点将消息从IoT中心路由到函数应用。发送到IoT中心的消息在IoT中心中注册,但不会路由到服务总线队列。当我监视服务总线队列时,我只看到成功的请求。 我使用以下标准实现了两个路由规则: 和 我用Azure提供的示例测试了第二个,结果与之匹配。它们似乎都没有将消息转发到服务总线。 在下面找到一条示例消息,我正在尝试发送该消息。

    • 我有一个服务总线Q,从Azure门户可以或多或少地看到服务总线Q包含多少条目。如何使用他们的管理API获取此计数?我仔细阅读了文档,但没有找到答案。

    • 我有一个windows服务,它侦听Azure服务总线队列消息,以便从我的WebApi应用程序分发处理。此外,我还需要处理重复性任务(每晚/每周),我认为最好使用相同的系统来处理这些任务。 例如,假设我有一个“CleanupDb”队列,每天午夜删除过时的DB节点: 理论上这应该行得通,但我觉得我错过了一个更明显的处理方法。有没有更好的办法?