问题标签 [azure-webjobs-continuous]

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 回答
696 浏览

azure - 是否可以将 Webjob 发布为“触发”类型以及“连续”类型

我有一个已转换为 Webjob 的控制台应用程序。

webjob中有很多功能需要每晚(午夜)运行一次。

但是,还有一个特定的需求是,同一个 Webjob 应该连续运行以执行某些作业,并且能够将来自多个用户的请求排队。

由于大多数过程是相同的,我不认为将另一个控制台应用程序创建为“连续”类型有什么意义。

由于我们在 azure 中进行了持续交付(当有新的 git 提交时,在线视觉工作室会自动构建和发布 Web 应用程序和 Web 作业)。

我如何设法告诉构建或发布过程从同一个控制台应用程序创建 2 个 Web 作业,其中一个是计划的(触发的),另一个是“连续的”?

当我写这个问题时,stackoverflow 的类似问题突出了我这个问题:Azure webjob;计划执行以及按队列触发

看起来可以在连续类型中使用TimerTrigger来处理这两种情况。

我会尝试看看这是否有效。请对这个工作案例提出您的建议。

0 投票
1 回答
1047 浏览

c# - Azure WebJob 队列未触发 WebJobs

如果我将二进制格式的消息传递给队列,Azure WebJob 队列不会触发 WebJobs?

我已将GOOGLE PROTOBUF字节作为 CloudMessage 推送到 Azure 队列存储中。但是,Azure 队列存储没有 ping 并将该 CloudMessage 传递给我的 Azure 连续运行的 WebJob,而不是那些消息正在移动到毒物队列?

以下代码是我用于汇集队列消息的 WebJob。

程序文件:

函数.cs

将消息字节添加到 Azure 队列的代码:

我的情况是,我将消息作为字节添加到队列中,然后队列存储必须发送消息并触发我在 Azure 云中发布/运行的Web 作业。

我对下面的方法签名有疑问。

我应该为上述方法签名中的消息参数使用什么数据类型,因为消息已成功添加到队列存储中,但队列不会触发 Azure 功能,并且所有队列消息都已移至毒物队列。

我在这里想念什么?

感谢您对此的想法。

提前致谢!

0 投票
0 回答
258 浏览

azure - 应该为 IOT Hub 与 Web App 通信实施什么方法?

我是 Azure 托管服务的新手。我不确定下面提到的方法是 IOT HUB 与 WEB APP 通信的最佳方法。

在 IOT Hub 中,我们创建了一些设备。因此,这些设备将以字节格式将有效负载发送到 IOT 集线器。

现在,从 IOT 中心,我必须将此有效负载传递到托管在 Azure 中的 Web 应用程序,并处理这些有效负载,并使用 IOT 中心service-client将响应有效负载发送到该设备。

为了将有效负载从 IOT Hub 传递到 Web 应用程序,我执行了以下操作。

方法如下:

第 1 步:在 Azure 中创建服务总线命名空间,并在服务总线命名空间中创建队列(boxtoserverqueue)。

第 2 步:我在 IOT Hub(自定义端点)中为上述 Servicebus 队列创建了端点

第 3 步:我在我的 Web 应用程序中创建了一个Servicebus 队列触发器连续运行 WebJob 。因此,此 WebJob 将侦听 Servicebus 消息。每当将 BrokerMessage 从 IOT Hub 添加到服务总线队列时,此 Web 作业将由Broker Message触发。因此,我将处理消息负载并使用IOT 中心 serviceClient直接发送回 Azure IOT 中心。

我是否采用这种方法的方向正确,或者我是否应该考虑事件中心客户端来实现 IOT 中心与 Web APP 之间的上述通信,或者其他原型可用于这种通信?

注意:我读过,如果我在我的网络应用程序中使用事件中心客户端,我应该汇集事件中心客户端以侦听 Messages While(true){}循环。不确定。

哪种方法应该是这个 IOT HUB 与 Web App 通信的最佳方法?

请分享您对此的看法?

提前致谢!

0 投票
1 回答
494 浏览

dependency-injection - 如何在 Azure Web Job 的调用范围绑定中配置 Ninject?

尝试编写 Web 作业调度程序时遇到问题。我正在使用 EF Repository 模式使用 Ninject 范围绑定。但只能InSingletonScope()按预期工作。如何在RequestScopeOr Call Scope 中配置它?

//注册上下文

0 投票
1 回答
73 浏览

azure - Azure WebJobs 随机初始化

我们在单个 Functions.cs 文件中有由多种方法组成的 webjobs。他们在主题/队列上有服务总线触发器。因此,请继续收听 brokeredMessage 的主题/队列。一旦消息到达,我们就有了一个处理逻辑来做很多事情。但是,我们有时会发现,所有的 webjobs 都会突然重新初始化。我在网站上发现很少有文章说 webjobs 确实被初始化了,而且这很常见。

但是,不确定这是否是唯一的方法,我们是否可以阻止它重新初始化,因为我们一得到 brokeredMessage.Complete 就调用它,因为我们不希望它一次又一次地继续处理?

此外,我们在一个应用服务中的 webjobs 很少,而在其他应用程序服务中的 webjobs 很少。而且,我们发现来自两个应用服务的所有 webjobs 都会同时重新初始化。不确定,为什么?

0 投票
1 回答
375 浏览

c# - 连续webjob中接收EventData[]类型EventHubTrigger消息的并行处理

在连续网络作业中接收事件数据时,我遇到了问题。

我正在使用设备客户端的批处理异步方法发送消息。在网络工作中,我一个接一个地收到这些批次。当第一批到达时,直到其中的所有消息完成;下一批不会触发并执行。在第一批执行完成后,只有第二批触发并开始执行。

我希望它并行执行。

我在接收方使用事件处理器主机,在发送方使用设备客户端。

我是否缺少任何配置选项?就像在队列中一样,有一个称为批量大小的选项,用于定义要并行处理的消息数量。那么,在连续网络作业中是否有任何选项,即分批接收事件中心数据并并行运行这些批次?

0 投票
1 回答
734 浏览

azure-webjobs - 连续运行具有高 CPU 负载的 Azure WebJob 在“启动请求”上意外中止/重新启动

以“B2 Basic”定价层运行的计时器触发的 Azure Webjob 意外中止。

访问 SQL 数据库和请求网页的相同代码已经在本地运行了几个月。我正在将代码移动到 Azure,并计划让它在 WebJob 中连续运行。代码在午夜启动并按预期执行(通过数据库和日志文件验证),直到它突然重新启动。

这可以在上面的日志文件中看到,时间戳为:01/10/2018 03:05:26

进一步检查 Kudu 跟踪日志,我发现了以下信息:

eventlog.xml 文件中没有错误。似乎某些 Azure 监视器决定通过发送“启动请求”来终止该进程。

我已经让代码运行了两个晚上,并且发生了完全相同的事情,尽管事件发生的时间不一样(超过 30 分钟的差异)。

问题:是否达到了一些 CPU 使用限制?我知道该进程没有使用比可用内存更多的内存,在这种情况下会捕获并记录异常。

我的 WebJob 是 CPU 贪婪的,但据我了解,CPU 与 Web 应用程序共享,我有责任决定如何利用资源 - 当 WebJobs 像它一样中止时,我不能这样做。我计划让 WebJob 持续运行,并在晚上醒来并工作 5-6 小时直到完成,然后在一天的剩余时间里睡觉。

我已经搜索过类似的问题,这不是没有指定“始终开启”的情况,也不是我以外的其他人重新启动 Web 应用程序的情况。

任何帮助深表感谢!!

0 投票
0 回答
506 浏览

azure - Azure WebJobs 疯狂 - ServiceBusTrigger 未触发

一个奇怪的事情发生在我的一个 WebJobs 中,我找不到问题所在。

此 WebJob 配置为在特定服务总线队列上收到消息后立即使用 ServiceBusTrigger。这个函数的执行时间是分钟/小时,所以我这样配置了 JobHostConfiguration:

如果我理解正确,这将授予每个功能:

  1. 每个实例最多并行执行 3 次(每条消息执行一次)
  2. 消息上的锁定最多保留 4 小时。如果处理时间少于 4 小时,这将避免消息重新排队。
  3. 一旦函数完成,消息就会从队列中删除(即使它应该是默认行为)。

这些消息包含必须为不同用户执行的作业。为了对不同的用户并行执行,但作为每个用户的单例,在函数内部我采取租约(与每个用户不同)并将其保留 60 秒,每 30 秒更新一次任务。

这似乎可行:为不同的客户并行执行作业,并对相同用户的相同请求进行序列化。

现在,有时 WebJob 会停止触发该功能,即使队列已满是消息。我不明白为什么。

一旦我重新启动该网络作业,一切都会像以前一样运行。关于为什么会发生这种情况的任何想法?

我注意到应用程序(错误地)停止了,即使网络作业正在运行。也许这就是问题所在?

0 投票
1 回答
1748 浏览

azure - Azure - 无法解决达到的最大允许输出行数

我有一个网络连续工作,并在日志中看到:

已达到此运行允许的最大输出行数,要查看所有作业的日志,您可以启用网站应用程序诊断

我用谷歌搜索,找到了解决方法,例如: Azure 如何启用完整的 WebJob 日志

我做了所有这些操作并具有以下设置:

在此处输入图像描述

但是消息仍然出现。还有什么问题?

PS。重新启动应用程序有助于添加大约 +100 条消息,然后我再次看到相同的错误

0 投票
0 回答
289 浏览

azure-webjobs - Azure WebJobs 中的错误 - 连续

Azure Web 作业日志文件中显示的以下错误是什么意思?

:SYS ERR] 由于退出代码,作业失败 - 1073741818

这个错误的原因是什么?