Skip to content
Snippets Groups Projects
Commit e7ab0e0f authored by Erik Johnston's avatar Erik Johnston
Browse files

Merge pull request #603 from matrix-org/erikj/presence

Create a new stream_id per presence update
parents b5f77eb1 6451fcd0
No related branches found
No related tags found
No related merge requests found
......@@ -58,17 +58,20 @@ class UserPresenceState(namedtuple("UserPresenceState",
class PresenceStore(SQLBaseStore):
@defer.inlineCallbacks
def update_presence(self, presence_states):
stream_id_manager = yield self._presence_id_gen.get_next(self)
with stream_id_manager as stream_id:
stream_ordering_manager = yield self._presence_id_gen.get_next_mult(
self, len(presence_states)
)
with stream_ordering_manager as stream_orderings:
yield self.runInteraction(
"update_presence",
self._update_presence_txn, stream_id, presence_states,
self._update_presence_txn, stream_orderings, presence_states,
)
defer.returnValue((stream_id, self._presence_id_gen.get_max_token()))
defer.returnValue((stream_orderings[-1], self._presence_id_gen.get_max_token()))
def _update_presence_txn(self, txn, stream_id, presence_states):
for state in presence_states:
def _update_presence_txn(self, txn, stream_orderings, presence_states):
for stream_id, state in zip(stream_orderings, presence_states):
txn.call_after(
self.presence_stream_cache.entity_has_changed,
state.user_id, stream_id,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment