问题标签 [azure-webjobssdk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3292 浏览

azure-webjobs - Azure Webjobs SDK 和队列处理错误

我正在做一个检查网络服务器的一些数据的网络作业。有时 Web 服务器很忙,会在几秒钟后再次尝试。

问题是,如果我只是忽略它并通过该函数,它将从队列中删除消息,我将无法重试调用。

我当前的解决方案(我根本不喜欢)是通过一个异常来增加双端队列数并将消息放回队列中。然而,这似乎非常残酷,需要重新启动 webjob 正在运行的线程。

有没有其他方法来处理这个?

0 投票
1 回答
5505 浏览

powershell - Deploying Azure WebJob using powershell automation

I'm trying to deploy an Azure WebJob using the Azure PowerShell SDK or Rest API and I'm having troubles finding support for deploying WebJobs. It's super simple to do through the UI in VS or Azure Management Portal but there doesn't seem to be much automation support.

According to some sites, when you deploy an Azure Website with an associated web job, it's supposed to deploy the Web Job automatically but I'm not seeing that happen when I publish the web project in VS and I don't see how that would work after the bits are compiled through TFS.

I've found some great resources that I've tried following but don't seem to be working for me: http://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-deploy-webjobs/#deploy http://azure.microsoft.com/blog/2014/08/18/enabling-command-line-or-continuous-delivery-of-azure-webjobs/ Unfortunately, I need to integrate this automation into a standalone deployment orchestration so I can't tie it to MSBuild.

I'd be happy with deploying both the Azure Website and the WebJob together if that's possible. I would imagine there must be a way to automate the uploading of a zip file containing the WebJob executable to the website like you can through the portal but I haven't had any luck finding it.

0 投票
1 回答
2006 浏览

azure - Azure Webjobs:一项具有多个功能的作业,还是多个具有 1 个功能的作业?

如何在创建多个 WebJobs 和每个具有 1 个功能的 WebJobs 和将多个功能捆绑到一个或仅几个 WebJobs 之间做出决定?谢谢

0 投票
1 回答
1561 浏览

azure-webjobs - 异步时 Azure WebJob 不会正确失败

我开始使用 WebJobs 来处理一些后台任务,但我遇到了关于错误处理和重试的问题。看来,如果我的任何函数是异步的,那么即使我在函数中抛出异常,该函数也总是在仪表板中报告成功。

考虑以下简单示例 ->

上面的代码的行为符合我的预期。消息从队列中弹出,抛出异常,WebJobs 仪表板中报告失败,消息被重新排队。这种情况发生了 5 次,然后消息被存储在毒物队列中。

但是,如果我尝试类似的功能但使其异步如下 - >

结果并不如预期。消息从队列中弹出,抛出异常,但仪表板报告成功并且没有重试。此外,在这些情况下,尽管仪表板报告成功,但异常是用一个超出世界范围的退出代码使进程崩溃,等待 60 秒,然后重新启动,如以下日志所示 - >

[11/11/2014 06:13:35 > 0dc4f9: INFO] 执行:'Functions.AlwaysFail' 因为在'alwaysfail' 上检测到新队列消息。[11/11/2014 06:13:36 > 0dc4f9:ERR] [11/11/2014 06:13:36 > 0dc4f9:ERR] 未处理异常:System.InvalidOperationException:引发错误 [11/11/2014 06:13 :36 > 0dc4f9: ERR ] 在 Plmtc.BackgroundWorker.Functions.d__2.MoveNext() [2014 年 11 月 11 日 06:13:36 > 0dc4f9: ERR ] --- 从先前抛出异常的位置结束堆栈跟踪 - -- [11/11/2014 06:13:36 > 0dc4f9: ERR ] 在 System.Runtime.CompilerServices.AsyncMethodBuilderCore.b__5(对象状态) [11/11/2014 06:13:36 > 0dc4f9: ERR] 在系统.Threading.QueueUserWorkItemCallback.WaitCallback_Context(对象状态)[11/11/2014 06:13:36 > 0dc4f9: ERR] 在 System.Threading.ExecutionContext。

我可以让仪表板中的异步函数失败的唯一方法是编写一个将 POCO 类作为参数但仅在消息中包含一个简单字符串的函数。在这些情况下,在到达任何函数代码之前,在消息/参数绑定期间发生故障。

有没有人成功使用异步函数来响应队列触发器而没有这些问题?

0 投票
1 回答
1552 浏览

azure-webjobs - JobHost.RunAndBlock 不阻塞

我已经将一个长时间运行的进程实现为一个 WebJob,它在队列消息时触发。我的理解是,JobHost.RunAndBlock()只有在当前作业完成并返回后才会开始执行。但是,如果当另一个队列消息到达时我的第一个进程仍在运行,则第二个进程开始执行并丢弃第一个进程(它具有一些静态数据结构)。

0 投票
3 回答
494 浏览

multithreading - 优雅地推迟 QueueTrigger

我目前正在使用 WebJobs SDK 来使用队列中发布的消息。

我的方法作为具有 [Microsoft.Azure.WebJobs.QueueTrigger(...)] 属性的一个参数并且可以正常触发。在某些情况下,该方法可以处理消息,但有时,我希望它拒绝消息,直到关键资源可用为止。

在这种情况下,我尝试抛出异常,但与参考资料相反,队列触发器立即再次触发(显然没有等待租约时间)。

有没有办法优雅地推迟消息处理?只是冻结等待关键资源的线程是否安全?

任何提示将不胜感激。

0 投票
3 回答
1376 浏览

.net - Azure WebJob QueueTrigger 消息未从队列中删除

我使用 1.0.0 WebJobs SDK 连续运行 WebJob。
这是配置代码。

这是我的工作职能签名。

我希望在成功运行函数后,从触发队列中删除消息。但是我让函数运行不止一次。

记录显示它在每个 nextVisibleTime 上运行,并且 dequeueCount 每次都在递增。

UPD:函数执行后似乎发生了错误。这是来自 webjob 仪表板的日志:

0 投票
1 回答
3175 浏览

asp.net-mvc-5 - WebJob 和 SignalR Hub 之间的通信

我有以下情况:

  • 我有一个 azure webjob(用于发送邮件),我需要在我的 web 应用程序中检查 webjob 的进度。
  • 我正在使用 SignalR 从我的服务器与客户端进行通信。
  • 当我想发送电子邮件时,我会在队列中推送一条消息,然后 azure webjob 会完成他的工作。

问题是,如何将 webjob 的进度传达给客户端?最初我的想法是从 webjob 推送消息,以便 Hub 可以从队列中读取它。然后,我会从中心通知客户。但是,我无法找到一种方法来通信 webjob 和集线器,当消息被推送到队列或服务总线中时,我不知道如何在集线器中触发操作。也就是说,我不知道如何为 hub 订阅队列的某个消息。

有人可以帮我吗?

0 投票
1 回答
426 浏览

azure - 为什么我的网络作业终止而没有引发异常?

我的 azure webjob 似乎正在终止而没有抛出异常,我迷路了。

我的网络作业是按需(或计划)运行的,并且依赖于我的网站 DLL(和 MVC 应用程序)。它调用它来完成大部分工作,其中包括使用实体框架数据库和对其他几个站点进行 REST 调用。大多数工作都是异步完成的。用于完成这项工作的大部分代码也可以毫无问题地从站点的其他部分调用,不用说,Web 作业在本地运行时可以完美运行。

Web 作业终止,并且似乎没有抛出异常,而且似乎无法调试不属于连续运行类型的 Web(?)。因此,我的调试主要是 Console.WriteLine 种类。由于这个原因和异步性,我无法确定它崩溃的确切位置 - 我以为是在访问数据库时,但在弄乱它之后,数据库访问开始工作......呃。我的下一个最佳猜测是它在等待或其他异步管道期间死亡。但是,它确实会在两个 try/catch 块内崩溃,这些块具有将结果记录到 redis 和 azure 存储的 finally。这些都不会发生。我无法弄清楚或想象,这个过程是如何在没有遇到任何异常处理程序的情况下崩溃的......?

有人对天蓝色的网络作业有这个问题吗?知道我应该寻找什么或调试这个的任何提示吗?

谢谢!

0 投票
2 回答
3788 浏览

c# - 通知 NoAutomaticTrigger 类型作业的连续 Azure WebJob 何时停止

全部,

我正在将现有的 Worker Role 代码迁移到 Azure Web 作业。我正在尝试使用 WebJob SDK (1.0),以便与 Azure 网站完全集成。

我的困难是 JobHost 不能很好地处理超出其通常基于属性的调用选项(队列、Blob 等)的作业。

我已经有标准代码无法更改以收听 Azure 队列/主题等,因此我无法使用 WebJob 代码来执行此操作。

因此我需要使用 WebJob Call 方法:

注意:我使用自己的 CallAsync,因为所有建议都是在使用库时使用 ConfigureAwait(false),但 JobHost 的内部没有这样做,所以我自己复制它的“调用”代码,但使用 ConfigureAwait。据我所知,取消令牌在 JobHost 中没有任何作用。

我的问题是我需要调用 host.RunAndBlock(); 停止工作退出,这很好,但是我需要运行一些清理处理。我无法使用 OnStop 方法重新调用“CallAsync”,因为主机已经被取消,所以我所能做的就是直接调用我的 OnStop 方法。不幸的是,我失去了通过提供的 TextWriter 类写入网站日志的能力。

我认为我需要一种让 JobHost 在 RunAndBlock 中调用我的方法的方法,这样我就可以拿起主机关闭时触发的取消令牌,然后执行我的清理代码....但似乎没有任何方式来做到这一点。

我有什么明显的失踪方式吗?JobHost 似乎在处理超出其规范的情况方面真的很差:(