gpt4 book ai didi

Azure WebJob 在 WebJobs 仪表板中的状态为 "Never finished"

转载 作者:行者123 更新时间:2023-12-02 07:27:19 24 4
gpt4 key购买 nike

我在 AppService 中长时间运行 Web 作业(大约 1 小时)。AppService 已打开“始终打开”。

它的初始化是:

var host = new JobHost(config);
host.Call(typeof(Functions).GetMethod("SyncUsers"));
host.Start();

使用属性包装的实际方法 SyncUsers:

[Timeout("00:59:00", ThrowOnTimeout = true)]
[NoAutomaticTrigger]

使用设置文件settings.job设置计划:

{
"is_singleton": true,
"schedule": "0 0 */4 * * *"
}

主要问题是,在 WebJobs 仪表板中,90% 的情况下我都会看到状态“从未完成”(或因异常而失败 - 正常情况)。此类作业的运行时间各不相同:从 5 分钟到 30 分钟不等。日志在某个时刻停止,没有任何异常或详细消息。

另一件事是我可以看到多个作业同时运行。所以看起来单例和调度不起作用(因为作业应该每 4 小时运行一次)。还有一些具有此状态的作业,在没有运行时间的情况下显示,如下所示:“1 小时前(运行时间)”,我无法查看日志或下载它们。

有人有过这样的经历吗?

谢谢

最佳答案

看起来您正在尝试运行一个永远不会作为触发的 WebJob 结束的可执行文件,它没有机会工作。您需要:

  1. 使用连续的 WebJob 并依靠 WebJobs SDK 作为计时器
  2. 使用部署为计划 Web 作业的普通控制台应用程序。这里不需要使用SDK。只需从 Main() 中执行您需要执行的操作即可结束。

我建议#2,除非您有使用 WebJobs SDK 的特定需要。

关于Azure WebJob 在 WebJobs 仪表板中的状态为 "Never finished",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50258090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com