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 摘要。