问题标签 [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 投票
0 回答
34 浏览

azure-devops - 应用服务中的交换插槽与连续的网络作业不工作

我有一个应用服务,它有一个连续运行的带有 2 个插槽的网络作业。生产和分期。

代码是这样的

有时,如果生产槽 webjob 中正在运行某些进程,则管道中的任务交换槽会显示成功,但在 azure 上,槽不会切换!

在此处输入图像描述

查看Configuration and Management>Check Swap Operations我们可以看到有一个问题,因为它说它无法修改站点,因为另一个操作正在进行中。

在此处输入图像描述

这是一个已知问题吗?如何解决?在尝试交换插槽之前先停止生产中的连续网络作业?

0 投票
1 回答
72 浏览

azure - 当应用服务计划有 7 GiB 时,WebJob 只能访问 2 GiB 内存

我有一个如下的 Azure 应用服务计划,它应该有 7 GB 的内存。

我正在使用它来托管具有单个 Continuous WebJob 的单个应用程序。当然有应用程序本身的网站,但我根本不使用它。

此外,我的服务计划中只有 1 个应用程序实例,因此不是因为多个实例共享总可用 7 GiB 内存。

服务计划有 2 个部署槽,1 个用于生产,1 个用于暂存。两个应用程序(生产中和暂存)都已关闭,因为 WebJob 可以在应用程序本身关闭时继续运行。

这是我看到的令人费解的地方。从应用服务计划概述页面中,它说我使用了大约 45% 的可用总内存。 在此处输入图像描述

但是我有时会遇到 OutOfMemoryException,所以我开始检查我的 WebJob 实际使用了多少内存。

事实证明,它使用了 2 GiB 可用物理内存中的 1.6 GiB,而不是我期望的 7 GiB。

我获取当前内存的方式是通过以下代码

根据此处的文档https://docs.microsoft.com/en-us/dotnet/api/system.gcmemoryinfo.totalavailablememorybytes?view=net-6.0#System_GCMemoryInfo_TotalAvailableMemoryBytes

此属性值将是 COMPlus_GCHeapHardLimit 环境变量的值,或 runtimeconfig.json 中的 Server.GC.HeapHardLimit 值(如果已设置)。

如果程序在容器中运行,则此值是容器大小的实现定义的一部分。

否则,该属性的值是上次垃圾收集发生时可供垃圾收集器使用的机器上的物理内存。

由于我没有设置环境变量 runtimeconfig.json 并且它不是容器,因此我认为GC.GetGCMemoryInfo().TotalAvailableMemoryBytes正确地返回了 VM 上我的 WebJob 可用的总物理内存,即 2 GiB。

感谢 Vova 在下面的评论,我还找到了这篇文章。https://docs.microsoft.com/en-us/azure/app-service/faq-availability-performance-application-issues#i-see-the-message--worker-process-requested-recycle-due-to --percent-memory--limit---how-do-i-address-this-issue-

这确实有道理;同时,在我看来,这篇文章是针对应用服务本身的。WebJob 作为独立于网站的进程运行。虽然症状是一样的。看来我的 WebJob 是 JIT 到 32 位而不是 64 位。

我的 WebJob 构建配置

无论如何,我的应用服务配置设置为 x64,如下所示。 在此处输入图像描述

我试图了解我做错了什么,因为我认为 Azure 在这里做的是正确的事情。

我正在使用 Azure 应用服务来运行 WebJob,因此我的目标是使用最小/最便宜的 SKU 来最大化 WebJob 的可用内存。

0 投票
1 回答
57 浏览

azure - 在 Azure 门户中发送有关 Web 作业失败的警报

有一个要求是仅在不成功的网络作业时发送电子邮件。有 16 个 Web 作业已在 azure 门户上成功部署和运行。我建议修改现有网络作业的代码,但客户不想修改网络作业。他想添加一些额外的东西,不再需要修改网络作业。我很困惑,不修改网络作业,我如何发送电子邮件?我在 google 和 stack-overflow 上搜索了很多,但没有得到任何东西。

我该如何实施?

0 投票
0 回答
27 浏览

azure - 创建 webjob 以获取同一应用服务的 webjobs 的状态

我正在创建一个需要发送网络作业状态邮件的网络作业。我正在使用 webjob API aka "https://xyz.scm.ase-03.com/api/triggeredwebjobs" 来获取 webjobs 详细信息。我从本地 httpclient 调用中得到响应,但是在将其部署为 azure 上的 webjob 时,我得到空响应。这是我的代码:

我怀疑调用 self webjobs api url 可能不起作用,所以我将它部署到另一个应用程序服务但没有运气。

谁能让我知道问题可能出在哪里?

提前致谢。