问题是一个长期运行的天蓝色网络工作在一个日常的时间表上。每次运行需要2-4小时进行数据分析。唯一的依赖项是通过EF使用Azure SQL数据库和使用Azure存储,只需在AzureWebJobsDashboard和AzureWebJobsStorage连接上设置App.Config,在VS上使用webjob进行标准设置。网络作业的大部分时间都使用EF的SaveChanges()。我还使用aprox 3000行控制台输出来进行重要的日志记录以监视进度。web应用程序被配置为Allways ON,WEBJOBS_IDLE_TIMEOUT设置为一个非常高的数字。
以下是错误的日志:
10/20/2016 07:48:17 > 492c46:错误未处理异常: Microsoft.WindowsAzure.Storage.StorageException:客户端无法在指定的超时内完成操作。-> System.TimeoutException:客户端无法在指定的超时内完成操作。
2016年10月20日07:48:17 > 492c46: ERR -内部异常堆栈跟踪的结束
2016年10月20日07:48:17 > 492c46: Microsoft.WindowsAzure.Storage.Core.Util.StorageAsyncResult`1.End()错误
2016年10月20日07:48:17 >492 c46: Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.EndUploadText(IAsyncResult asyncResult)
2016年10月20日07:48:17 >492 c46: Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions.<>c__DisplayClass4.b__3(IAsyncResult ar上的错误)
发布于 2017-01-04 19:16:52
这是几个月前的事了,但对于那些晚些时候来的人.
你说你做了很多记录。在处理类似的东西时,有一个记录在案的问题。显然,WebJobs SDK定期将日志数据保存到blob存储中。如果您正在使用大量带宽或以其他方式消耗大量资源,则可能会遇到SDK试图保存到blob存储的超时。注意堆栈跟踪中的上传调用。
我偶尔看到这是在一个过程中,惩罚电线相当好,所以我是禁用日志通过WebJobs日志记录设施。
发布于 2016-10-20 19:22:09
如果触发的for作业空闲、没有cpu时间或在一定时间内没有输出,则会中止。尝试通过将configuration WEBJOBS_IDLE_TIMEOUT设置为一个大数目来增加它,例如3600。
如果您的实例没有始终打开配置,它也可能被中止。
如果这没有帮助,那么您应该尝试处理日志记录的数量。会不会是你试着写很多信息来加快速度呢?看看这个答案,看看是否应该是这样的。
https://stackoverflow.com/questions/40160250
复制相似问题