If the Redis connection dies when we are doing something long-running like audit parsing or billing recurring donations, we just drop a donation on the floor before crashing. It would be neat to instead write that donation to the damaged message table (with a retry date) so that the message requeue job picks it up a little later.
We could put this logic in the QueueWrapper::push function as long as it has a way to tell whether the damaged message table is available. For example, on the IPN listener and the payments server it is not accessible.