我必须处理队列中的项目。
从队列中删除项目是手动调用Queue.DeleteMessage
. 无论处理是否成功,这都需要发生。
var queueMessage = Queue.GetMessage();
try
{
pipeline.Process(queueMessage);
}
catch (Exception ex)
{
try
{
Logger.LogException(ex);
}
catch { }
}
finally
{
Queue.DeleteMessage(queueMessage);
}
问题:
失败时,我将错误记录到某个数据存储中。如果此日志记录失败(可能数据存储不可用),我仍然需要从队列中删除该消息。
我已将LogException
电话包裹在另一个try catch
. 这是正确的方式还是执行的事情?