hyperstack-org / hyperstack-org/hyperstack

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

未关闭
#318 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
performance
主要语言
JavaScript
星标
538
派生
41
PR 合并指标
30 天内没有已合并 PR

描述

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.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。