.NET Core是否支持创建由Azure QueueTrigger启动的webjobs?

时间:2017-01-02 21:04:33

标签: azure .net-core azure-webjobs

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

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

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

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 webjob的一些解决方法,如下所述:How do I deploy an Azure WebJob alongside a .NET Core Web App via Git?  但是 - 虽然这样可行 - 我只想知道我是否可以将我的webjob移植到.NET Core 1。

有没有人知道这样做的方法?

TIA, 的Jeroen

2 个答案:

答案 0 :(得分:3)

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

  

为了澄清,使用.NET Core的Azure WebJobs运行良好。它特别使用了尚不支持的WebJobs SDK。

答案 1 :(得分:3)

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

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

来自:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-azure-and-service-bus-queues-compared-contrasted

  

Azure存储队列

     

Push-style API:否

           

服务总线队列

     

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