Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Embeddable Queues?

I have an Application that collects actions and sends them off to a remote server. As these actions aren't time critical (think of them as log lines), I want to queue them up and send them in batches.

That way, I also want to ensure that no message is ever lost (unless the hard drive crashes).

MSMQ seems rather heavyweight, arcane and weird to use. Also, it needs to be installed as a system component.

Serializing my messages into JSON and storing them in SQLite is trivial and straight forward, but before I do that, I wonder if there is a standardized (preferably AMQP compatible) queue that I doesn't require installation and can be embedded into an app?

like image 534
Michael Stum Avatar asked Dec 14 '25 01:12

Michael Stum


1 Answers

I really think you should reconsider MSMQ.

  1. It is installed by default in the Server versions of Windows.
  2. Installation on non Server versions of windows is trivial.
  3. It provides a built-in UI for observing the queue
  4. I don't know what your standards are of 'heavy and arcane' - but I just used it for the first time in a project and it was the easiest part of the application. I certainly don't think its much more heavyweight than storing the queue in a database yourself.
  5. If you prefer to use JSON, you can serialize the messages yourself and store as a string
  6. You can configure a queue to be recoverable - so storing the queue on disk not in memory

The only serious objection that I can see is having to install MSMQ. If you are having to deploy this application far and wide on different versions of Windows, I can see that as a significant problem.

like image 113
iandotkelly Avatar answered Dec 15 '25 16:12

iandotkelly



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!