azure - Azure Webjob 在 4 分钟后失败
问题描述
我有 3 个网络作业。2现在连续运行几个月没有任何问题。我最近创建的第三个是一个触发的网络作业,它监听我的存储队列。这工作正常,除了 4 分钟后 webjob 崩溃并且状态设置为“失败”。
查看错误日志,我看到了这个:
was aborted due to no output nor CPU activity for 121 seconds. You can increase the SCM_COMMAND_IDLE_TIMEOUT app setting (or WEBJOBS_IDLE_TIMEOUT if this is a WebJob) if needed.
但整个想法是,当有东西进入队列时,webjob 将执行它的任务,与此同时,webjob 可以进入空闲状态,这没问题。
看来我错过了大局。我确实在门户中启动了网络作业。那是错的吗?我应该将其保持在“就绪”状态吗?
创建一个监听队列的 webjob 的正确工作流程是什么,当它无事可做时休眠,当有东西放入队列时再次唤醒?
解决方案
首先回答问题:
- 我将其部署为触发式 WebJob
- 我正在使用 WebJob SDK
- 我不熟悉
Azure function
- 我启用了
Always On
现在解决方案。昨天晚上我添加WEBJOBS_IDLE_TIMEOUT
到Application settings
Azure 门户中并将其值设置为 3600,这应该意味着 1 小时。我还将这个设置添加到我<appSettings>
的 in 中app.config
,只是注意到我的 WebJob 仍在运行(现在超过 11 小时)。我只是在队列上放了一些东西,并且处理得很好。
我不确定为什么它现在可以工作,但我很高兴它可以工作;)
推荐阅读
- node.js - Multer - 如果表单验证失败,则停止文件上传
- oracle - ORA-01858 在执行创建的过程时
- kotlin - RxJava2 如果元素当前存在于流中,则忽略它
- docker - 如何通过容器的 IP 地址访问 Docker 容器的服务?
- ios - 实例化 MPVolumeView 时,新的 OutputDeviceUID 为 nil msg
- java - 从文本文件中逐行读取并将每一行保存到数组中的不同单元格中
- r - R Knit Markdown 代码块:“找不到对象”
- alfresco - Activiti 通过组 id 获取用户
- c# - Active Directory 检索组中的组成员似乎陷入无限循环
- java - 如果我们可以使用构造函数设置所有值,为什么还要在 java 中使用 setter?