Azure WebJob运行不可靠

时间:2019-06-21 07:51:48

标签: azure azure-application-insights azure-webjobs

我们有两个环境Test(登台)和Prod(生产)。 几乎所有设置都相同,我的WebJob是基于.NET Framework 4.7.2的控制台应用程序。它计划每天凌晨3点运行。此WebJob的唯一目的是在WebApp上调用我们的终结点。

在测试环境中,WebJob按预期运行-每天运行一次。因为它应该调用我们的API,所以我可以使用“应用程序见解”并在此端点上搜索传入的请求,最近30天每天都有一次请求:

test environment last 30 days

但是在PROD环境中,它会更有趣。这是应该由WebJob调用的同一端点的最近30天的图表:

prod environemnt last 30 days

它仅被调用了两次-更准确地说,到端点的调用仅在Application Insights中记录了两次。

当我检查“ WebJobs”部分时,WebJob处于“成功”状态,并且在日志中,我可以看到: “ [[05/23/2019 03:00:12> 184a66:SYS INFO]状态更改为成功”

仅在调用端点并接收到202 OK代码后才记录此状态,因此必须调用某些内容,因为作业成功完成。

但是在提到的端点上处理的第一行中的一行被写入到我们的跟踪日志中-但是什么都没有,该日志为空-此跟踪日志独立于ApplicationInsights,它记录在我们的存储表中。

此WebJob的目的是安排推送通知,当我在Azure上检查我们的Notification Hub时,我可以看到某个东西在凌晨5点左右发送了计划的推送通知,这恰好是作业应运行的时间(工作时间3:00)日志为UTC,图形为UTC + 2)

为什么端点上的请求未记录?如果已更改为“成功”状态,则必须调用它。

如果处理了代码并安排了推送通知,为什么我们的跟踪日志为空?

它是否有可能在我们的WebApp的其他实例上运行?

总结我的期望:

  1. WebJob每天凌晨3点运行
    • 没问题,它按计划运行
  2. WebJob应该在AppService上调用API端点“ api / job / endpointname”
    • 我希望这应该作为传入请求记录在AppService的应用程序见解中
    • 它不是每次都记录,而是随机的
  3. 在预期的端点上调用
  4. AppService
    • 我们要做的第一件事就是将此调用记录到我们的跟踪日志中-该跟踪日志完全独立于应用程序见解,这是我们在StorageTables中的内部日志
    • 它未在此处记录,看来AppService本身未运行任何内容-因为我们没有有关传入请求的日志+我们的跟踪日志中没有任何内容
  5. WebJob应当调用的端点的目的是调度PushNotifications
    • 即使我们没有任何记录表明AppService上有任何运行,也已在我们的推送通知中心成功安排了推送通知
    • 如果可能的话,它看起来几乎可以在AppService的某些不同实例上运行

似乎此问题发生在我们拥有的所有webJob上,这一点最为明显。主要问题是我无法跟踪它。

此外,“始终打开”设置被设置为“启用”。 我还尝试将ServicePointManager.DefaultConnectionLimit设置为48,因为以前它仅在默认值(2)上没有帮助。

0 个答案:

没有答案