Open
Description
Lately I've noticed poor performance in our production database for the Hyperstack tables, and noticed we had about 400K QueuedMessages in the table. Upon looking in the code, I found this:
# hyper-operation/lib/hyper-operation/transport/connection.rb:111
expired.delete_all
# hyper-operation/lib/hyper-operation/transport/connection.rb:173
inactive.delete_all
ActiveRecord delete_all
does not run callbacks, so the dependent QueuedMessages are not being destroyed when the Connection is. This should be changed to destroy_all
so that the QueuedMessages don't get left in the database and accumulate.