mirror of
https://mau.dev/maunium/synapse.git
synced 2024-08-24 19:25:57 +00:00
Pull prev txn from in memory
This commit is contained in:
parent
1d275dba69
commit
d13459636f
@ -58,6 +58,8 @@ class TransactionStore(SQLBaseStore):
|
|||||||
# Newly delivered transactions that *were* persisted while in flight
|
# Newly delivered transactions that *were* persisted while in flight
|
||||||
self.update_delivered_transactions = {}
|
self.update_delivered_transactions = {}
|
||||||
|
|
||||||
|
self.last_transaction = {}
|
||||||
|
|
||||||
reactor.addSystemEventTrigger("before", "shutdown", self._persist_in_mem_txns)
|
reactor.addSystemEventTrigger("before", "shutdown", self._persist_in_mem_txns)
|
||||||
hs.get_clock().looping_call(
|
hs.get_clock().looping_call(
|
||||||
self._persist_in_mem_txns,
|
self._persist_in_mem_txns,
|
||||||
@ -159,11 +161,15 @@ class TransactionStore(SQLBaseStore):
|
|||||||
|
|
||||||
self.inflight_transactions.setdefault(destination, {})[transaction_id] = txn_row
|
self.inflight_transactions.setdefault(destination, {})[transaction_id] = txn_row
|
||||||
|
|
||||||
return self.runInteraction(
|
prev_txn = self.last_transaction.get(destination)
|
||||||
"_get_prevs_txn",
|
if prev_txn:
|
||||||
self._get_prevs_txn,
|
return defer.succeed(prev_txn)
|
||||||
destination,
|
else:
|
||||||
)
|
return self.runInteraction(
|
||||||
|
"_get_prevs_txn",
|
||||||
|
self._get_prevs_txn,
|
||||||
|
destination,
|
||||||
|
)
|
||||||
|
|
||||||
def _get_prevs_txn(self, txn, destination):
|
def _get_prevs_txn(self, txn, destination):
|
||||||
# First we find out what the prev_txns should be.
|
# First we find out what the prev_txns should be.
|
||||||
@ -196,6 +202,8 @@ class TransactionStore(SQLBaseStore):
|
|||||||
destination, {}
|
destination, {}
|
||||||
).pop(transaction_id, None)
|
).pop(transaction_id, None)
|
||||||
|
|
||||||
|
self.last_transaction[destination] = transaction_id
|
||||||
|
|
||||||
if txn_row:
|
if txn_row:
|
||||||
d = self.new_delivered_transactions.setdefault(destination, {})
|
d = self.new_delivered_transactions.setdefault(destination, {})
|
||||||
d[transaction_id] = txn_row._replace(
|
d[transaction_id] = txn_row._replace(
|
||||||
|
Loading…
Reference in New Issue
Block a user