add recover mechanism for message queue