Azure WebJob QueueTrigger获取后如何删除DeleteMessage?

Jul*_*n50 6 c# azure-queues azure-webjobs

我在azure上有一个webjob,带有QueueTrigger.工作很长(超过30分钟)

public async static Task ProcessQueueMessageAsync([QueueTrigger(QUEUENAME)] string iJobId)
{
//doing my long job
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在触发后删除队列中的消息.消息变为不可见,直到时间跨度(默认为30秒)到来.我的工作时间少得多.所以我想我必须在触发器方法的开头删除该消息.当你使用GetMessage()方法循环而不是触发时,我发现如何做到这一点.但是如何用触发器来做,因为我没有运行的消息对象.DeleteMessage()

Jul*_*n50 5

Michael Curd在MSDN论坛上的回答,引用于此:

SDK应该已经处理过了.如您所述,默认情况下,邮件将被租用(或变为不可见)30秒.如果工作时间比这长,那么租约将会续订.除非主机崩溃或函数抛出异常,否则该消息将不会对该函数的另一个实例可用.功能成功完成后,SDK将删除该消息.因此,您不需要为此方案编写任何特殊代码.