【问题标题】:Does .NET Core support creating webjobs that get started by an Azure QueueTrigger?.NET Core 是否支持创建由 Azure QueueTrigger 启动的 Web 作业?
【发布时间】:2017-01-02 21:04:33
【问题描述】:

我有一个运行良好的现有网络作业 (.NET 4.6.1),只要消息到达队列就会触发。我正在研究如何将一些应用程序迁移到 .NET Core 1.0,作为其中的一部分,我做了一些研究。

目前看来,.NET Core 1.0 仅支持按计划运行且没有特殊 Webjob 功能的 webjob,例如:https://blog.kloud.com.au/2016/06/08/azure-webjobs-with-dotnet-core-rc2/

要让队列消息触发作业,我需要 Webjob 包的功能。当我添加任何 WebJobs Nuget 包(包括测试版)时,我收到错误:

Package Microsoft.Azure.WebJobs.Core 2.0.0-beta2 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.Azure.WebJobs.Core 2.0.0-beta2 supports: net45 (.NETFramework,Version=v4.5)
    One or more packages are incompatible with .NETCoreApp,Version=v1.0.

我确实为 Azure 存储应用了一种解决方法,如下所述: https://jeremiedevillard.wordpress.com/2016/09/27/use-the-azure-storage-library-in-netcore-application/ 但这显然不能解决 Webjob 包的问题。

我知道在 .NET Core 网站旁边部署非 .NET Core 网络作业的一些解决方法,如下所述:How do I deploy an Azure WebJob alongside a .NET Core Web App via Git? 但是 - 虽然这可行 - 我只是想知道我是否可以将我的网络作业移植到 .NET Core 1。

有人知道怎么做吗?

TIA, 杰伦

【问题讨论】:

  • 你有答案了吗?

标签: azure .net-core azure-webjobs


【解决方案1】:

由于 Azure 存储队列中没有内置 推送/通知 机制,它仍在轮询。

您可以每隔 X 秒轮询一次队列并检查新消息。无论如何,这就是 SDK 正在做的事情,但是以一种文明、优雅的方式。这样做没有错。

发件人:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-azure-and-service-bus-queues-compared-contrasted

Azure 存储队列

推送式 API:否


服务总线队列

推送式 API:
OnMessage 和 OnMessage 会话 .NET API。

【讨论】:

  • 谢谢!很高兴知道。我可能会查看 SDK 的源代码以找到有关如何执行此操作的线索。
  • 如果您不熟悉 Azure 存储队列的机制,这些视频是一个很好的入门知识:stackoverflow.com/a/38036911/4148708
【解决方案2】:

据我所知,目前不支持在 .NET Core 中使用 WebJobs SDK 的 Azure WebJobs。以下是提到的davidebbo 的片段。更多详情请参考issue

澄清一下,使用 .NET Core 的 Azure WebJobs 可以正常工作。具体而言,尚不支持使用 WebJobs SDK。

【讨论】:

  • 感谢您的回答,我们只需要等待,当 Webjob SDK 版本 2.0 发布后,他们将在 .Net Core 支持上工作。
猜你喜欢
  • 2017-02-15
  • 1970-01-01
  • 2020-01-03
  • 2017-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多