diff --git a/synapse/push/action_generator.py b/synapse/push/action_generator.py
index 84efcdd184..46e768e35c 100644
--- a/synapse/push/action_generator.py
+++ b/synapse/push/action_generator.py
@@ -15,7 +15,9 @@
from twisted.internet import defer
-from .bulk_push_rule_evaluator import evaluator_for_room_id
+from .bulk_push_rule_evaluator import evaluator_for_event
+
+from synapse.util.metrics import Measure
import logging
@@ -25,6 +27,7 @@ logger = logging.getLogger(__name__)
class ActionGenerator:
def __init__(self, hs):
self.hs = hs
+ self.clock = hs.get_clock()
self.store = hs.get_datastore()
# really we want to get all user ids and all profile tags too,
# since we want the actions for each profile tag for every user and
@@ -34,15 +37,16 @@ class ActionGenerator:
# tag (ie. we just need all the users).
@defer.inlineCallbacks
- def handle_push_actions_for_event(self, event, context, handler):
- bulk_evaluator = yield evaluator_for_room_id(
- event.room_id, self.hs, self.store
- )
-
- actions_by_user = yield bulk_evaluator.action_for_event_by_user(
- event, handler, context.current_state
- )
-
- context.push_actions = [
- (uid, actions) for uid, actions in actions_by_user.items()
- ]
+ def handle_push_actions_for_event(self, event, context):
+ with Measure(self.clock, "handle_push_actions_for_event"):
+ bulk_evaluator = yield evaluator_for_event(
+ event, self.hs, self.store, context.current_state
+ )
+
+ actions_by_user = yield bulk_evaluator.action_for_event_by_user(
+ event, context.current_state
+ )
+
+ context.push_actions = [
+ (uid, actions) for uid, actions in actions_by_user.items()
+ ]
|