My favorites | Sign in
joq
Project Home Downloads Wiki Issues Source
Project Information
Members
Links

JoQ aims to be a simple, fast, and efficient message broker. It is optimized for the simple case of managing a series of priority queues.

Queues are distinguished via tags (strings). Additionally, JoQ maintains an "untagged" queue for jobs sent without any identifier for their target queue. A job may be a member of multiple queues (by having multiple tags).

Jobs are obtained from JoQ by sending JoQ a list of queues from which the next job should be selected. JoQ will assemble a new priority queue from the selected tags and return the highest priority item. Deleting an item from one queue deletes it from all other queues to which it was assigned when it was sent to JoQ.

This is done efficiently using a combination of fast-merging skew heaps and the Java Observer/Observable event-handlers.

Implementation details aside, the goal of this is to create a simple, fast, networked job queue supporting any number of completely unrelated producers and consumers.

To do:

  1. Decide on and implement socket server protocol
  2. Serialization of live queues
  3. Implement sample client

Wish list:

  1. Web-based job monitor

Powered by Google Project Hosting