Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
d0bc940
Enforce clientId timeout in clientExists
jpignata Oct 4, 2012
10c8789
Set score to 0 before destroying clientId
jpignata Oct 6, 2012
bd7fca9
Reintroduce buffer
jpignata Oct 7, 2012
1c534bf
Reset client to 0 before GC
jpignata Oct 8, 2012
cb4e977
Clean up dead clients in publish
jpignata Oct 8, 2012
e41303b
Expire message queues after an hour
jpignata Oct 8, 2012
b891922
Introduce sharded Redis engine
jpignata Feb 9, 2013
591812e
Don't use SUNION
jpignata Feb 9, 2013
7bc7221
Don't support wildcard delivery
jpignata Feb 9, 2013
3432800
Rename host to hostname in options object
jpignata Feb 9, 2013
17fbbec
Try sharding the pub/sub bus
jpignata Feb 10, 2013
20ceedd
Update documentation
jpignata Feb 10, 2013
f904c6a
Ditch servers object
jpignata Feb 10, 2013
3ef6b35
Minor consistency changes
jpignata Feb 10, 2013
451c1f0
Disable GC if the gc engine option is false
daveyeu Feb 19, 2013
844d0fa
Add some debugging around possible Redis failures
daveyeu Jul 27, 2013
42a6af7
Split this._ns + /clients sorted set across redis instances
conner Sep 18, 2014
e6e51d1
Bump version
conner Sep 18, 2014
7aa6d27
Fix forEach in gc
conner Sep 18, 2014
046e3cb
gc: Fix erroneous lock manipulation
conner Sep 18, 2014
7faabaa
Add an option to squelch subscriptions for publishers
daveyeu Sep 19, 2014
c509d4f
Bump version
daveyeu Sep 19, 2014
3d219ac
Rename the `publisher` option to `disable_subscriptions`
daveyeu Sep 19, 2014
e14750c
Add GC limit for expired clients per cycle
daveyeu Sep 19, 2014
b6e3abf
Fix failing test with undefined clientId
daveyeu Oct 16, 2014
c16ee98
Remove useless connection logging
daveyeu Oct 16, 2014
7e03b93
Don't destroy clients when publishing
daveyeu Oct 16, 2014
c9a906f
Convert console.log to Faye debug in GC
daveyeu Oct 16, 2014
8c2d9f2
Rewrite destroyClient to tolerate Redis failures
daveyeu Oct 17, 2014
ab2ff5f
Set the score with the initial ZADD in createClient
daveyeu Oct 17, 2014
ebd7f3e
Modify Faye logging level when running tests
daveyeu Oct 17, 2014
67c2cfb
Update README with test running instructions
daveyeu Oct 17, 2014
f558fe6
Update version
daveyeu Oct 17, 2014
f771ae5
Fixed namespace when removing subscriptions
daveyeu Oct 17, 2014
2d43d61
Merge pull request #1 from groupme/redis-errors
daveyeu Oct 17, 2014
a6c9b19
Add logging for number of GC'd clients per run
daveyeu Oct 17, 2014
f59f7ed
Handle Redis error when publishing
daveyeu Oct 17, 2014
946c4f7
Update version
daveyeu Oct 17, 2014
a4d8829
Merge branch 'bug-fixes'
daveyeu Oct 17, 2014
ec3b5cb
Don't reset the score during GC
daveyeu Oct 17, 2014
fa67bb4
Pipeline calls to cleanup GC'd clients
daveyeu Oct 17, 2014
1fbd38a
Merge branch 'optimize-gc'
daveyeu Oct 17, 2014
1071395
Re-enable GC from publishers
daveyeu Oct 20, 2014
f0c6ec0
Always call destroyClient's callback
daveyeu Oct 20, 2014
3c7ed0d
Rewrite GC to process continuously
daveyeu Oct 20, 2014
5a6a685
Bump version
daveyeu Oct 20, 2014
ee898cb
Merge branch 'publisher-gc'
daveyeu Oct 20, 2014
7e58a5b
Add node-statsd dependency for GC stats
daveyeu Oct 21, 2014
fc07e69
Increments statsd for GC successes/failures
daveyeu Oct 21, 2014
1ca1dd1
Setup gauges to track the number of clients in each Redis shard
daveyeu Oct 21, 2014
631ec9c
Bump version
daveyeu Oct 21, 2014
6592d04
Merge branch 'statsd'
daveyeu Oct 21, 2014
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion README.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,22 @@ The full list of settings is as follows.
* <b><tt>socket</tt></b> - path to Unix socket if `unixsocket` is set


## Development

To run the tests, first start up a local Redis server running on port 16379.

$ redis-server spec/redis.conf
$ node spec/runner.js

This engine does have some incompatibilities with the spec, and currently
there are four known test failures:

1. Redis engine destroyClient when the client has subscriptions stops the client receiving messages:
2. Redis engine publish with a single wildcard delivers messages to matching subscriptions:
3. Redis engine publish with a double wildcard delivers a unique copy of the message to each client:
4. Redis engine publish with a double wildcard delivers messages to matching subscriptions:


## License

(The MIT License)
Expand All @@ -63,4 +79,3 @@ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Loading