我有一个现有的 webjob (.NET 4.6.1),它运行良好并在消息到达队列时被触发。我正在研究如何将一些应用程序迁移到 .NET Core 1.0,作为其中的一部分,我做了一些研究。
目前看来,.NET Core 1.0 只支持按计划运行的 webjobs,没有特殊的 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 webjob 的一些解决方法,如下所述:How do I deploy an Azure WebJob alongside a .NET Core Web App via Git?
但是 - 尽管这可行 - 我只是想知道我是否可以将我的 webjob 移植到 .NET Core 1。
有谁知道这样做的方法吗?
TIA,
杰伦
最佳答案
由于 Azure 存储队列中没有内置 推送/通知 机制,它仍然是轮询。
您可以每 X 秒轮询一次队列并检查新消息。无论如何,这就是 SDK 正在做的事情,但是以一种文明、优雅的方式。这样做没有错。
来自:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-azure-and-service-bus-queues-compared-contrasted
关于azure - .NET Core 是否支持创建由 Azure QueueTrigger 启动的 webjobs?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41433249/