Azure Webjob 到 运行 同时收听事件?

Azure Webjob to run whilst listening to events?

我将有一个 Azure 网络作业,每 x 分钟 运行。 该作业侦听 EventHub (pub/sub) 以获取任何传入消息并处理该消息。

create/design 网络作业的最佳方式是什么,以便它在处理消息时保持清醒?我不确定是否始终开启是执行此操作的正确方法,或者只是每隔几分钟 运行 webjob 但是在执行 webjob 期间,我希望代码为 运行 以便它可以等待并收听消息而不是几乎立即退出(想象 program.cs 没有 console.readline!)

有什么想法或想法吗?

您有 3 个主要选择:

  1. 创建控制台应用程序并使用 Event Processor Host。将其部署为连续的 Web 作业。

  2. 创建一个控制台应用程序并使用 WebJobs SDK 创建一个 EventHub 触发的函数。将其部署为连续的 Web 作业。

  3. 使用 Event Hub trigger 创建 Azure 函数。

在 1 和 2 中,您将按 Web 应用计划实例的小时数付费。使工作基于计时器而不是连续工作没有意义:除非您关闭 Web 应用程序实例,否则您将继续按小时付费。

在 3 中,您按函数执行时间付费,如果事件数量较少,这可能会便宜得多。