The mongodb-queue package
A simple messaging queue using MongoDB. This trades having a good queue for ease of deployment. This is designed to be much worse at scale than real queueing infrastructure. However, it is very simple to start using if you are already running MongoDB. You could probably fork this code to make it work with a different database that you are already using.
There are 2 options for receiving a message: polling or tailable cursors. Polling is obviously inefficient, but it works against an index on a capped collection, so it should still be fairly efficient, and as fast as the polling interval you set. Tailable cursors respond very quickly and don't re-query the database. However, there is an outstanding bug that they use up CPU on the database when the system is idle, particularly as more tailable cursors are added. The idle CPU usage will become worse as you scale out to multiple worker processes.
|Versions||0.1.0.0, 0.2.0.0, 0.2.0.1, 0.2.0.2, 0.2.1, 0.2.2, 0.2.2.1, 0.2.3.0, 0.2.3.1, 0.2.4, 0.2.5, 0.2.5.1, 0.2.5.2, 0.2.5.3, 0.3, 0.4, 0.4.0.1 (info)|
|Dependencies||base (>4.5 && <5), data-default, lifted-base, monad-control, mongoDB (>=22.214.171.124 && <1.5), network, text, transformers [details]|
|Copyright||Daggerboard Inc. makers of docmunch.com|
|Author||Daggerboard Inc. Greg Weber|
|Maintainer||Greg Weber <firstname.lastname@example.org>|
|Source repository||head: git clone git://github.com/docmunch/haskell-mongodb-queue.git|
|Uploaded||Wed Jan 22 23:12:37 UTC 2014 by GregWeber|
|Downloads||3313 total (39 in the last 30 days)|
|Status||Docs available [build log]
Successful builds reported [all 1 reports]
For package maintainers and hackage trustees