Erik Johnston
f8f3d72e2b
Don't make pushers handle presence/typing events
2015-08-24 16:19:43 +01:00
Daniel Wagner-Hall
53d1174aa9
Improve naming
2015-07-20 06:32:12 -07:00
Erik Johnston
bd1236c0ee
Consolidate duplicate code in notifier
2015-07-02 11:46:05 +01:00
Erik Johnston
ddf7979531
Add receipts_key to StreamToken
2015-07-02 11:45:44 +01:00
Erik Johnston
2f556e0c55
Fix typo
2015-06-19 16:22:53 +01:00
Erik Johnston
6f6ebd216d
PEP8
2015-06-18 17:00:32 +01:00
Erik Johnston
73513ececc
Documentation
2015-06-18 16:15:10 +01:00
Erik Johnston
1f24c2e589
Don't bother proxying lookups on _NotificationListener to underlying deferred
2015-06-18 16:09:53 +01:00
Erik Johnston
22049ea700
Refactor the notifier.wait_for_events code to be clearer. Add _NotifierUserStream.new_listener that accpets a token to avoid races.
2015-06-18 15:49:24 +01:00
Erik Johnston
050ebccf30
Fix notifier leak
2015-06-18 11:36:26 +01:00
Mark Haines
554c63ca60
Iterate over the user_streams not the user_ids
2015-05-26 15:03:49 +01:00
Mark Haines
88f1ea36ce
Oops, get_rooms_for_user returns a namedtuple, not a room_id
2015-05-21 15:23:58 +01:00
Mark Haines
ad31fa3040
Don't bother sorting by the room_stream_ids, it shouldn't matter which order they are notified in
2015-05-18 14:04:58 +01:00
Mark Haines
1e90715a3d
Make sure the notifier stream token goes forward when it is updated. Sort the pending events by the correct room_stream_id
2015-05-18 13:17:36 +01:00
Mark Haines
0ad1c67234
Add some doc-strings to notifier
2015-05-14 14:35:07 +01:00
Mark Haines
084c365c3a
Use the current token when timing out a notifier, make sure the user_id is a string in on_new_user_event
2015-05-14 12:03:26 +01:00
Mark Haines
3edd2d5c93
Fix v2 sync, update the last_notified_ms only if there was an active listener
2015-05-14 11:25:30 +01:00
Mark Haines
5e0c533672
Fix metric counter
2015-05-13 17:20:28 +01:00
Mark Haines
f1b83d88a3
Discard unused NotifierUserStreams
2015-05-13 16:54:02 +01:00
Mark Haines
9af432257d
Don't set a timer if there's already a result to return
2015-05-13 15:42:13 +01:00
Mark Haines
df6db5c802
Don't bother checking for new events from a source if the stream token hasn't advanced for that source
2015-05-13 15:08:24 +01:00
Mark Haines
63878c0379
Don't bother checking for updates if the stream token hasn't advanced for a user
2015-05-13 13:42:21 +01:00
Mark Haines
cffe6057fb
Merge branch 'notifier_unify' into notifier_performance
...
Conflicts:
synapse/notifier.py
2015-05-12 16:37:50 +01:00
Mark Haines
4429e4bf24
Merge branch 'develop' into notifier_unify
...
Conflicts:
synapse/notifier.py
2015-05-12 15:31:26 +01:00
Mark Haines
78672a9fd5
Merge branch 'notifier_unify' into notifier_performance
2015-05-12 13:11:54 +01:00
Mark Haines
2551b6645d
Update the end_token correctly, otherwise the token doesn't advance and the client gets duplicate events
2015-05-12 11:54:18 +01:00
Mark Haines
5c75adff95
Add a NotifierUserStream to hold all the notification listeners for a user
2015-05-12 11:00:37 +01:00
Mark Haines
e269c511f6
Don't bother passing the events to the notifier since it isn't using them
2015-05-11 15:01:51 +01:00
Mark Haines
5e3b254dc8
Use wait_for_events to implement 'get_events'
2015-05-11 14:37:33 +01:00
Erik Johnston
4ac1941592
PEP8
2015-05-08 16:33:01 +01:00
Erik Johnston
476899295f
Change the way we do logging contexts so that they survive divergences
2015-05-08 16:32:18 +01:00
Erik Johnston
42c12c04f6
Remove some run_on_reactors
2015-05-01 14:41:25 +01:00
Erik Johnston
e19f794fee
Change from exception to warn
2015-04-15 15:12:57 +01:00
Mark Haines
1280a47fc6
Add comment
2015-04-09 11:42:21 +01:00
Mark Haines
23d285ad57
Unset the timer in the timeout callback so that we don't try to cancel it if it has been called
2015-04-09 11:41:50 +01:00
Mark Haines
6f9dea7483
SYN-339: Cancel the notifier timeout when the notifier fires
2015-04-09 11:07:20 +01:00
Erik Johnston
5bc41fe9f8
Move comment into docstring
2015-04-08 14:01:22 +01:00
Erik Johnston
638be5a6b9
Factor out loops into '_discard_if_notified'
2015-04-08 13:58:32 +01:00
Erik Johnston
830d07db82
Also perform paranoia checks in 'on_new_user_event'
2015-04-08 13:40:20 +01:00
Erik Johnston
65f5e4e3e4
Add paranoia checks to make sure that we evict stale NotificationListeners when we are about to process them
2015-04-08 13:33:38 +01:00
Erik Johnston
07d4041709
Fix bug where we didn't inform the NotificataionListeners about new rooms they have been subscribed to. This meant that the listeners didn't clean themselves up fully from all the dicts
2015-04-08 13:33:38 +01:00
Paul "LeoNerd" Evans
128cf2daf7
Appease pep8
2015-03-12 16:24:51 +00:00
Paul "LeoNerd" Evans
89ac1fa8ba
Add a counter to track total number of events served by the notifier
2015-03-12 16:24:51 +00:00
Paul "LeoNerd" Evans
b0cf867319
Use _ instead of . as a metric namespacing separator, for Prometheus
2015-03-12 16:24:51 +00:00
Paul "LeoNerd" Evans
6d146e15df
Put some gauge metrics on the number of notifier listeners, and notified-on objects (users, rooms, appservices)
2015-03-12 16:24:51 +00:00
Paul "LeoNerd" Evans
dc4b774f1e
Rename rooms_to_listeners to room_to_listeners, for consistency with user_ and appservice_*
2015-03-05 14:30:20 +00:00
Kegan Dougal
1cc77145d4
Notify appservices of invites mid-poll.
...
This requires the notifier to have knowledge of appservice listeners so it can
do the regex checks on incoming invites to see if the state_key matches. It
isn't enough to just rely on the room listeners and store.get_app_service_rooms
as the room will initially not exist or won't be on the ASes radar due to
having none of its users in the room.
2015-02-27 09:39:12 +00:00
Erik Johnston
fa6c93bd26
Merge branch 'consumeErrors' of github.com:matrix-org/synapse into develop
2015-02-17 15:18:17 +00:00
Erik Johnston
72a4de2ce6
Use consumeErrors=True on all DeferredLists.
...
This is so that the DeferredLists actually consume the error instead of
propogating down the non-existent errback chain. This should reduce the
number of unhandled errors we are seeing.
2015-02-17 10:07:01 +00:00
Kegan Dougal
51d63ac329
Glue AS work to general event notifications. Add more exception handling when poking ASes.
2015-02-05 13:19:46 +00:00
Mark Haines
e020574d65
Fix Formatting
2015-01-27 20:19:36 +00:00
Mark Haines
b19cf6a105
Wait for events if the incremental sync is empty and a timeout is given
2015-01-27 20:09:52 +00:00
Mark Haines
dc70d1fef8
Only start the notifier timeout once we've had a chance to check for updates. Otherwise the timeout could fire while we are waiting for the database to return any updates it might have
2015-01-19 16:24:54 +00:00
Mark Haines
adb04b1e57
Update copyright notices
2015-01-06 13:21:39 +00:00
Paul "LeoNerd" Evans
0c1deca574
Remember to hook up the typing event stream to the notifier as well
2014-12-15 16:14:53 +00:00
Mark Haines
db9ce032a4
Fix pep8 codestyle warnings
2014-11-20 17:26:36 +00:00
Mark Haines
32090aee16
Add a few missing yields, Move deferred lists inside PreserveLoggingContext because they don't interact well with the logging contexts
2014-11-20 16:24:00 +00:00
Mark Haines
0d1221155e
remove unused import
2014-11-19 16:40:01 +00:00
Mark Haines
97c7c34f6f
Preserve logging context in a few more places, drop the logging context after it has been stashed to reduce potential for confusion
2014-11-19 16:37:43 +00:00
Mark Haines
7d709542ca
Fix pep8 warnings
2014-10-30 11:10:17 +00:00
Paul "LeoNerd" Evans
beae9acfcc
Use floating-point rather than integer division to handle timeouts so that non-zero but sub-second waits don't collapse to zero
2014-10-29 17:03:02 +00:00
Matthew Hodgson
8a7c1d6a00
fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org hasn't been incorporated in time for launch.
2014-09-03 17:31:57 +01:00
Paul "LeoNerd" Evans
061e814195
Make sure to print exceptions properly from notifier failures
2014-09-03 13:46:52 +01:00
Erik Johnston
464e1fcfa5
Merge branch 'master' of github.com:matrix-org/synapse into release-v0.2.0
...
Conflicts:
synapse/notifier.py
webclient/room/room-controller.js
webclient/room/room.html
2014-09-02 15:26:11 +01:00
Paul "LeoNerd" Evans
eec67a675f
Have EventSource's get_new_events_for_user() API work only on keys within that source, not overall eventstream tokens
2014-08-29 19:13:55 +01:00
Erik Johnston
f07f538ac7
When notifying listeners, don't do so in a serial fashion
2014-08-29 16:01:01 +01:00
Erik Johnston
8113eb7c79
Turn of trace_function logging
2014-08-28 18:45:00 +01:00
Erik Johnston
eb3094ed31
And more logging.
2014-08-28 15:58:38 +01:00
Erik Johnston
410a74b0f3
If timeout=0, return immediately
2014-08-27 17:21:48 +01:00
Erik Johnston
226025e9ca
Comments!
2014-08-27 17:04:47 +01:00
Erik Johnston
bfe9faad5a
Index sources in a nicer fashion.
2014-08-27 15:33:52 +01:00
Erik Johnston
bd16b93e8f
Implement presence event source. Change the way the notifier indexes listeners
2014-08-27 14:03:27 +01:00
Erik Johnston
67c5f89244
Enable presence again. Fix up api to match old api.
2014-08-26 19:40:29 +01:00
Erik Johnston
3a2a5b959c
WIP: Completely change how event streaming and pagination work. This reflects the change in the underlying storage model.
2014-08-26 18:57:46 +01:00