我有一个云服务任务,该任务在计划时间之间每5分钟执行一次。我面临角色实例挂起的问题,我怀疑这是由于一项工作可能要花很长时间才能完成,并使角色实例忙起来。
我想增加超时以停止taht任务,如果它需要更长的时间来处理。但是,当使用Azure仿真器在本地执行此任务时,它可以很好地工作,但是在Azure中部署时,它会保持超时,甚至不执行单个代码。
下面是供参考的基本代码
protected void ProcessChunk(IEnumerable<SparkPostEmailUpdateQueueItem> chunk)
{
itemsInChunk = 0;
// there are a number of batch's in a chunk. Process each and wait for them all to finish
var work = chunk.Select(c => ProcessEventBatch(c))
.ToArray();
if(!Task.WaitAll(work, 1800000))
{
logger.Trace("Timeout elpased for SparkPost event batch");
}
NumberOfChunksProcessed++;
ExecuteItemsProcessed += itemsInChunk;