azure-webjobs - Azure WebJob:我正在从 Web 作业调用 sql server 存储过程
问题描述
我必须以连续模式从 azure webjob 运行存储过程。我已经用 c# 编写了代码,并在我的开发环境中部署了相同的代码。
在监视了 3 或 4 天后,我发现,如果存储过程运行很长时间,webjobs 就会中止。我的程序需要大约 50 秒才能返回输出。那时工作中止。
如果存储过程快速返回数据,它工作正常。好像数据更多并且程序需要时间,我被中止了。但就我而言,我希望保持工作调整,直到程序返回数据。
我无法弄清楚。
我尝试了以下选项
- 始终开启 ON
- 停止等待时间:300
有什么建议吗。?
解决方案
您可以使用以下代码设置超时时间来解决您的问题。有关更多详细信息,您可以查看这篇关于异步等待 Task 以 timeout 完成的帖子。您也可以选择其他代码来实现。
int timeout = 1000;
var task = SomeOperationAsync();
if (await Task.WhenAny(task, Task.Delay(timeout)) == task) {
// task completed within timeout
} else {
// timeout logic
}
由于您的 azure webjob 处于连续模式,您无法使用WEBJOBS_IDLE_TIMEOUT
设置。但是您的 webjobs 将始终打开,您也可以设置WEBJOBS_RESTART_TIME
重新启动。
推荐阅读
- bluetooth-lowenergy - NimBLE 中的 ble_gatts_chr_updated 如何获取特征值?
- c++ - Make candies in a smallest number of days
- c++ - 重载运算符 = 在 cpp 中为 ptr
- vue.js - 为什么 Quora 不能从元标记中获取正确的图像缩略图?
- python - Merging two large dataframes on specific column with progress bar showing
- python - Collect all key errors
- lua - LUA 5.2: Load/Require/etc - 将其限制为可以加载的特定目录
- javascript - 如何获取 WSDL API?
- c# - Why do I have to reference components in start, but declare variables in no void?
- c# - Best Practice to use connection string in Asp.Net Core app