diff options
author | Erik Johnston <erikj@jki.re> | 2016-08-23 11:02:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-23 11:02:40 +0100 |
commit | 122c7a43c90f0e2cee5b4bf2d169b405184746d0 (patch) | |
tree | a9636f6aba8d656f0d6f761970fce9a3643a9099 /synapse/storage/transactions.py | |
parent | Merge pull request #1028 from matrix-org/dbkr/notifications_api (diff) | |
parent | Delete old received_transactions (diff) | |
download | synapse-122c7a43c90f0e2cee5b4bf2d169b405184746d0.tar.xz |
Merge pull request #1038 from matrix-org/erikj/receved_txn_purge
Delete old received_transactions rows
Diffstat (limited to 'synapse/storage/transactions.py')
-rw-r--r-- | synapse/storage/transactions.py | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/synapse/storage/transactions.py b/synapse/storage/transactions.py index 6258ff1725..58d4de4f1d 100644 --- a/synapse/storage/transactions.py +++ b/synapse/storage/transactions.py @@ -62,10 +62,9 @@ class TransactionStore(SQLBaseStore): self.last_transaction = {} reactor.addSystemEventTrigger("before", "shutdown", self._persist_in_mem_txns) - hs.get_clock().looping_call( - self._persist_in_mem_txns, - 1000, - ) + self._clock.looping_call(self._persist_in_mem_txns, 1000) + + self._clock.looping_call(self._cleanup_transactions, 30 * 60 * 1000) def get_received_txn_response(self, transaction_id, origin): """For an incoming transaction from a given origin, check if we have @@ -127,6 +126,7 @@ class TransactionStore(SQLBaseStore): "origin": origin, "response_code": code, "response_json": buffer(encode_canonical_json(response_dict)), + "ts": self._clock.time_msec(), }, or_ignore=True, desc="set_received_txn_response", @@ -383,3 +383,12 @@ class TransactionStore(SQLBaseStore): yield self.runInteraction("_persist_in_mem_txns", f) except: logger.exception("Failed to persist transactions!") + + def _cleanup_transactions(self): + now = self._clock.time_msec() + month_ago = now - 30 * 24 * 60 * 60 * 1000 + + def _cleanup_transactions_txn(txn): + txn.execute("DELETE FROM received_transactions WHERE ts < ?", (month_ago,)) + + return self.runInteraction("_persist_in_mem_txns", _cleanup_transactions_txn) |