如果服务已经从队列中获取作业然后爆炸,会发生什么

what will happen if service already fetch the job from the queue and then blow up

我是新手,请帮助我。我想设计一个带有网站和服务的系统。该网站接受用户的请求并将工作放入队列中。该服务从队列中获取作业并对其进行处理。但是如何处理服务已经从队列中获取作业后崩溃的场景?有没有一种机制可以知道系统已经崩溃并将作业放回队列。提前致谢!

使用 MSMQ 时,默认情况下,消息在被放入队列和被处理时(通过处理程序)包装在事务中。

如果消息在处理程序进行到一半时服务器断电,事务将失败并且消息将留在队列的顶部。当服务器重新启动时,最上面的消息将从队列中拉出并进行处理(上次失败期间正在处理的消息)。