hyperstack-org / hyperstack-org/hyperstack

QueuedMessages from unsent/expired Connections are getting left in the database

Ouverte
#318 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
performance
Langage dominant
JavaScript
Étoiles
538
Forks
41
Métriques de merge des PR
Aucune PR mergée en 30 j

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:

```ruby
# 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.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.