我需要一些帮助来解决涉及带有 Azure 实例的任务并行库的问题。下面是我的工人角色的代码。
每当我上传多个文件时,都会向队列中插入一个请求,并且工作进程会不断处理查询队列并获取消息。检索到消息后,我会执行一些长时间的运行过程。我使用了任务调度器,以便多个请求由多个实例上的多个任务实例提供服务。
现在的问题是,如果一个实例从队列中获取消息并将消息分配给任务并进行处理,现在我看到另一个实例也从队列中检索相同的消息并处理它。因此,我的任务被执行了多次。
请帮我解决这个问题。我的要求是一个 Ccre 的一个 Azure 实例只处理一项任务操作,而不是按任务进行多项操作。
public override void Run()
{
//Step1 : Get the message from Queue
//Step 2:
Task<string>.Factory.StartNew(() =>
{
//Message delete from Queue
PopulateBlobtoTable(uri, localStoragePath);
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
throw;
}
finally
{
}
}
return "Finished!";
})
catch (AggregateException ae)
{
foreach (var exception in ae.InnerExceptions)
{
Trace.WriteLine(exception.Message);
}
}