问题标签 [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 回答
1282 浏览

azure - Azure WebJobs SDK 服务总线死信队列

使用 WebJobs SDK 时,将 BrokeredMessage 移动到死信队列的正确方法是什么?通常我只会调用 msg.DeadLetter()。但是,SDK 负责管理代理消息的生命周期。如果方法返回成功,它将调用 msg.Complete(),如果发生异常,它将重试消息。我需要告诉 ServiceBus 队列将消息移动到死信队列的第三种情况,因为它是一条错误消息。

0 投票
4 回答
1142 浏览

azure - Azure WebJob 计划错误 - ETAG

尝试从 Visual Studio 2013 发布网络作业,但在输出窗口中出现以下错误:

该作业将作为“按需”类型而不是“计划”发布。

想法?

在此处输入图像描述

0 投票
1 回答
1075 浏览

c# - 并行运行 Azure Webjob 时的 Ninject 范围

我有一个控制台应用程序作为我的网络作业来处理我的应用程序内的通知。使用队列触发进程。应用程序使用实体框架 6 与 SQL Azure 数据库交互。被调用的 Process() 方法读取/写入数据库中的数据。

处理队列消息时出现几个错误。它们永远不会进入毒物队列,因为它们在 2-3 次后被成功重新处理。主要错误如下:

mscorlib.dll 中出现“System.StackOverflowException”类型的未处理异常

错误:System.OutOfMemoryException:引发了“System.OutOfMemoryException”类型的异常。

默认批量大小为 16,因此消息是并行处理的。

我的猜测是用于并行处理消息的 Ninject 设置是错误的。因此,当它们同时处理时,会出现一些错误,最终处理成功。

我的问题是:这个设置看起来好吗?我应该使用 InThreadScope() 可能是因为我不知道并行处理也是多线程的。

这是我的应用程序的代码。

程序.cs

code>

这是 Ninject 的 CustomModule 的代码

处理方法的代码。

更新 - 添加了异常

Json 序列化程序抛出异常。这是堆栈跟踪:

错误:System.OutOfMemoryException:引发了“System.OutOfMemoryException”类型的异常。在 System.String.CtorCharCount(Char c, Int32 count) 在 Newtonsoft.Json.JsonWriter.AutoCompleteClose(JsonContainerType type) 在 Newtonsoft.Json.JsonWriter.WriteEndObject() 在 Newtonsoft.Json 的 Newtonsoft.Json.JsonTextWriter.WriteIndent()。 JsonWriter.WriteEnd(JsonContainerType type) 在 Newtonsoft.Json.JsonWriter.WriteEnd() 在 Newtonsoft.Json.JsonWriter.AutoCompleteAll() 在 Newtonsoft.Json.JsonTextWriter.Close() 在 Newtonsoft.Json.JsonWriter.System.IDisposable.Dispose( )在 Newtonsoft.Json.JsonConvert.SerializeObjectInternal(对象值,类型类型,JsonSerializer jsonSerializer)在 Newtonsoft.Json.JsonConvert.SerializeObject(对象值,类型类型,格式化格式,JsonSerializerSettings 设置)在 Core.Services.Communications.EmailsS​​ervice。
0 投票
1 回答
224 浏览

azure - Azure WebJobs sdk 是否可以按需/调度程序读取预先存在的 blob?

带有 BlobTrigger 属性的 Azure WebJobs sdk 可以检测到任何 blob 何时更新或添加到某个容器。是否可以使用 TextReader 参数编写一个仅按计划或按需读取现有 blob 的函数,如下所示:

另一种方法是不使用 webjobs sdk 并从 Main() 下载带有 Azure Storage SDK 的 blob

0 投票
1 回答
837 浏览

azure - 在 Web 角色中使用 Webjobs SDK

我们有一个 Azure Web 角色,它需要监视服务总线队列以获取对早期请求的响应(然后将通过 SignalR 将其传输到客户端)。

起初我们想在 WebRole.OnStart() 中使用消息泵 (QueueClient.OnMessage)。然而,我们已经成长为非常喜欢 WebJobs SDK,尤其是它如何让程序员摆脱一些较低级别的实现和仪表板。

由于各种原因,我们希望保留 Web 角色而不是切换到网站。那么问题来了:如何在 Azure Web Role 中使用 WebJobs SDK?在一个小实验中,我们在 WebRole.cs 中修改了 Web Role 的 OnStart(),如下:

这似乎工作正常,但我们很难评估它对 Web 角色的影响。会不会有后果?也许是在扩展 Web 角色?

谢谢。

0 投票
1 回答
904 浏览

c# - 手动 WebJob SDK 功能绑定

我有一个要消耗的服务总线队列。我发现的所有示例都建议编写如下内容:

上面代码的问题是队列名称在我的程序中是硬编码的。我希望能够像使用队列连接字符串一样从配置中获取队列名称。不幸的是,属性只能传递编译时常量,所以我不能传递一些来自配置的静态初始化字符串。

我环顾四周,找不到任何其他方法来设置服务总线功能绑定。这是不可能的吗?

0 投票
1 回答
3747 浏览

c# - 缺少 ServiceBusConnectionString 时出现 FunctionIndexingException

我创建以下程序:

在 app.config 我添加以下连接字符串:

我收到FunctionIndexingException消息异常,Error indexing method 'ProcessQueue'.

0 投票
1 回答
1112 浏览

azure - Azure WebJob SDK 服务总线文档?

我正在尝试使用 Azure WebJob SDK,但找不到任何关于它的文档,所以我可以知道会发生什么,而不必通过测试来戳它。

我确实找到了这个:http ://azure.microsoft.com/en-us/documentation/articles/websites-webjobs-resources/但它更多的是教程而不是文档。他们向我介绍了 SDK 的非常基本的用法,但没有详细介绍非快乐路径的情况。

我还发现https://github.com/Azure/azure-webjobs-sdk-samples有一些不愉快的路径,但那里关于服务总线的信息很少。

在没有强大文档的情况下,如果源代码可用(通过反射除外)会很好。然后我可以挖掘一点,找到我的问题的答案。目前,我发现回答任何问题的唯一方法是编写一些测试,但这很快就会变得乏味。

我无法在上述链接中找到答案的一些问题示例(尽管我可能错过了):

  1. 如果我有一个带[ServiceBusTrigger("my-queue")] String 参数的方法,它是 PeekLock 还是 ReceiveAndDelete?

  2. 怎么样[ServiceBusTrigger("my-queue")] BrokeredMessage

  3. 如果是 PeekLock,函数成功执行(无异常)会发生什么?它是在消息上调用 Complete 还是我需要手动调用它?

  4. 如果我有 a[ServiceBusTrigger("my-queue")] BrokeredMessage而不是 a ,行为会改变[ServiceBusTrigger("my-queue")] String吗?

  5. 如果我的处理方法抛出异常会怎样?它会在消息上调用 Abandon 吗?

  6. 如果我的处理功能比 PeekLock 超时时间长,锁是自动更新还是我必须手动更新?

  7. 除了 String 和 BrokeredMessage 之外,我还可以对 ServiceBusTriggers 使用任何其他自动反序列化吗?

  8. 是否可以将反序列化器连接到我的 ServiceBusTrigger 参数?例如,如果我的消息是 protobuf 格式,我可以向 WebJob SDK 介绍它,以便它可以为我反序列化,还是我必须将它作为 BrokeredMessage 接收并手动反序列化?

0 投票
1 回答
627 浏览

azure - 如何按失败筛选我的 Azure WebJob 函数调用历史记录?

我有一个使用 Azure Web Jobs SDK 构建的 Azure WebJob。它使用队列中的消息并在另一个队列中生成消息。它有成千上万的成功和少数的失败。不幸的是,我能找到回顾函数调用的唯一方法是对所有函数调用进行分页。

在此处输入图像描述

有什么方法可以获取失败列表并获取有关它们的其他详细信息,例如记录的内容或引发的异常?

0 投票
1 回答
2183 浏览

c# - 我如何拥有一个写入服务总线队列的异步函数?

使用 Azure WebJobs SDK,我想创建一个异步函数,它将接收 ServiceBus 队列输入并写入 ServiceBus 队列输出。异步方法不能有 out 参数,例如在 BlobStorage 上,这些参数似乎可以通过使用 Streams 和 TextWriters 来解决。但是,当我尝试对 ServiceBus 参数执行相同操作时,我收到异常。

错误索引方法“FilterCurrentCpesToNewCpes”

无法将 ServiceBus 绑定到类型“System.IO.TextWriter”。

我收到了 Stream 的类似消息。