作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个预定的网络作业,每分钟运行一个函数:
[TimerTrigger("00:01:00", RunOnStartup = true)]
有时它会挂起并处于“从未完成”状态几天。这可以防止触发作业的新计划。 Azure 日志也没有记录任何条目 - 该运行的日志为空。
我想知道如果作业处于“永不完成”状态/状态,是否有办法告诉 Azure 调度程序继续调度?设置“UseMonitor = true”可以做到这一点吗?
最佳答案
据我所知,如果计划的 Web 作业处理周期性地花费很长时间(或根本没有完成),则一定是您的作业功能中的操作时不时地花费很长时间或失败。一切都取决于您的工作实际上在内部做什么。如果它在某些地方变得异步,SDK 将继续等待它返回。
据此,我建议你可以尝试使用webjob的TimeoutAttribute。如果函数挂起,很容易根据超时取消函数,会显示异常。
如果你发现错误太大想要修改,我建议你可以使用ErrorTrigger,你可以引用这个article .
更多详细信息,您可以引用以下代码。
我用队列测试了一下,结果和TimerTrigger webjob一样。
//Change the function timeout value
[Timeout("00:00:03")]
public static void TimeoutJob(
[QueueTrigger("queue")] string message,
CancellationToken token,
TextWriter log)
{
Console.WriteLine("From function: Received a message: " + message);
Task task = new Task(new Action(() => /*here is your code*/ Thread.Sleep(5000)), token);
// this will cancel the task is the token is CancellationRequested and show the exception the task is cancel
task.Wait();
Console.WriteLine("From function: Cancelled: Yes");
}
关于Azure 计划的 WebJob 从未完成状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44273434/
背景 我最近在 merge 期间遇到了一个意外未 merge 的文档文件的问题。 无论出于何种原因,我搞砸了 merge 并有效地删除了文件(和其他几个文件),因为我忘记了它们的存在。 现在我想查看我
我在我的网站上使用旧的 mysql 版本和 php 版本 4。 我的表结构: | orders_status_history_id | orders_id | orders_status_id |
我是一名优秀的程序员,十分优秀!