Commit Graph

995 Commits

Author SHA1 Message Date
Jon Chambers fadcf62166 Send all messages via keyspace notifications when a feature flag is enabled. 2020-09-11 13:12:17 -04:00
Jon Chambers c02b255766 Consolidate semaphore release logic. 2020-09-11 13:12:17 -04:00
Jon Chambers 89788fa665 Represent stored message state as an enumeration rather than a collection of booleans. 2020-09-11 13:12:17 -04:00
Jon Chambers a052e2ee8f Refactor: collapse state into semaphores/atomic booleans. 2020-09-11 13:12:17 -04:00
Jon Chambers 158e5004b7 Refactor: move sendNextMessagePage into its own method. 2020-09-11 13:12:17 -04:00
Jon Chambers 6f9ff3be37 Avoid querying the database if we think all new messages are in the cache. 2020-09-11 13:12:17 -04:00
Jon Chambers f766c57743 Query for more stored messages if an update happens while we're already processing a batch. 2020-09-11 13:12:17 -04:00
Jon Chambers 8f53152c3e Only send the "queue cleared" message once per websocket session. 2020-09-11 13:12:17 -04:00
Jon Chambers 7bbc88d716 Let processStoredMessages handle requery logic. 2020-09-11 13:12:17 -04:00
Jon Chambers 68256d2343 Only allow one thread to process stored messages at a time. 2020-09-11 13:12:17 -04:00
Jon Chambers 1a0c70acc2 Bump version to 4.12 2020-09-11 12:14:12 -04:00
Ehren Kret f88c440c48
Automatically retry when Twilio returns unreachable (#190)
* Parse and log the Twilio error code

* Automatically retry without sender ID when Twilio returns unreachable

* Remove attempt count and pass around whether or not sender id was used
2020-09-10 13:58:39 -05:00
Jon Chambers cfa56ba6d4 Remove the "send online messages via keyspace notifications" feature flag. 2020-09-10 10:41:20 -04:00
Jon Chambers 37e6297fb2 Bump version to 4.11 2020-09-09 16:05:20 -04:00
Jon Chambers 2c6b646d87 Enforce no capability downgrade on device verification 2020-09-09 16:05:00 -04:00
Jon Chambers e7572094b5 Require all enabled devices to support GV2. 2020-09-09 16:05:00 -04:00
Jon Chambers ddd5e0e889 Bump version to 4.10 2020-09-09 14:42:37 -04:00
Jon Chambers 5e34823a49 Optionally send online-only messages via keyspace notifications. 2020-09-09 14:42:09 -04:00
Jon Chambers fdef21a871 Record and listen for ephemeral messages in a separate queue. 2020-09-09 14:42:09 -04:00
Jon Chambers d40cff8a99 Revert "Add a system for storing, retrieving, and notifying listeners about ephemeral (online) messages."
This reverts commit 06754d6158.
2020-09-08 15:55:09 -04:00
Jon Chambers 8927e45ded Revert "Optionally send online-only messages via keyspace notifications."
This reverts commit 12fe28d8ab.
2020-09-08 15:55:09 -04:00
Jon Chambers a602f73ed0 Bump version to 4.09 2020-09-08 11:31:07 -04:00
Jon Chambers 1a93df92d4 Replace DeliveryStatus with a simple boolean. 2020-09-08 11:29:33 -04:00
Jon Chambers 12fe28d8ab Optionally send online-only messages via keyspace notifications. 2020-09-08 11:19:55 -04:00
Jon Chambers 06754d6158 Add a system for storing, retrieving, and notifying listeners about ephemeral (online) messages. 2020-09-08 11:14:42 -04:00
Jon Chambers 8f9ec07ac3 Bump version to 4.08 2020-09-08 09:31:25 -04:00
Jon Chambers 1d5087374e Jettison UUID-or-E164 plumbing in favor of UUID-only. 2020-09-08 09:30:47 -04:00
Jon Chambers 8356264fe0 Rename RedisClusterMessagesCache and related classes to just MessagesCache. 2020-09-08 09:30:47 -04:00
Jon Chambers 18ecd748dd Entirely discard the old message cache machinery. 2020-09-08 09:30:47 -04:00
Jon Chambers 6061d0603a Bump version to 4.07 2020-09-03 13:53:10 -04:00
Jon Chambers e324f27655 Stop sending/processing CONNECTED pub/sub messages. 2020-09-03 13:52:43 -04:00
Jon Chambers afd645fb11 Retrieve messages using commands available in Redis 3. 2020-09-03 13:31:55 -04:00
Jon Chambers e48d37ccab Bump version to 4.06 2020-09-03 12:09:30 -04:00
Jon Chambers 5b42593fbb Persist messages one page at a time. 2020-09-03 12:08:46 -04:00
Jon Chambers 25f3c6a548 Drop our dependency on commons-pool. 2020-09-03 11:05:10 -04:00
Jon Chambers 5c04f2634a Use a dedicated executor service for dispatching keyspace notifications. 2020-09-03 11:04:48 -04:00
Jon Chambers ad01610d1e Rely on the client presence manager to decide whether to send push notifications. 2020-09-03 11:04:48 -04:00
Jon Chambers 697c380cd1 Close websocket connections when displaced. 2020-09-03 11:04:48 -04:00
Jon Chambers ce89bf3c77 Bump version to 4.05 2020-09-02 11:57:52 -04:00
Jon Chambers 81e8143a43 Rely solely on the clustered message cache. 2020-09-02 11:57:33 -04:00
Jon Chambers 39c4117409 Bump version to 4.04 2020-09-02 11:03:04 -04:00
Jon Chambers 8409986ef5 Mirror persistence operations from the new persister to the old persister. 2020-09-02 11:02:40 -04:00
Jon Chambers 2b50367d7f Put message persisters behind feature flags. 2020-09-02 11:02:40 -04:00
Jon Chambers cd4b85b0b5 Don't print intermediate status when running SimultaneousSenderTest. 2020-09-01 16:29:47 -04:00
Jon Chambers dcec02412d Bump version to 4.03 2020-09-01 12:35:20 -04:00
Jon Chambers 1dcc491fec Move cache-mirroring operations to the calling thread. 2020-09-01 12:34:37 -04:00
Jon Chambers c6419a9c61 Bump version to 4.02 2020-09-01 11:12:24 -04:00
Ehren Kret d715f86713 Refactor to constants 2020-09-01 10:55:26 -04:00
Ehren Kret 5221828705 Increase maximum sticker size to 300 kibibytes
In preparation for animated stickers, allow stickers to be up to 300
kibibytes.
2020-09-01 10:55:26 -04:00
Jon Chambers 6aa4acd3db Mirror "clear queue" operations to the clustered cache. 2020-09-01 10:55:07 -04:00