Skip to content
This repository was archived by the owner on Jul 24, 2026. It is now read-only.
This repository was archived by the owner on Jul 24, 2026. It is now read-only.

[TASK] add a subscribe() method to the Message Queue #27

Description

@derhofbauer

We can push event handling to the message queue module to not care about the event it fires in the consumer module. Also move the async stuff to the message queue module.

function consumer() {}

MessageQueue.subscribe(consumer)
function consumerAsync() {}

MessageQueue.subscribeAsync(consumer[, data[, parallelLimit]])

First argument is the function name of the consumer and second optional argument is the event it subscribes to. When the second argument is not given, consumer should be subscribed to all possible events. If a message queue handles only one channel, this is pretty self-explanatory.

When calling consumerAsync the async module is used to handle parallel execution of consumerAsync(). Wording might change to subscribeParallel().

In both cases the consumer function is called like this: consumer(eventData, 'eventName')

Be careful not to call each subscriber with different eventDara because of MessageQueue.first(). On each event, all subscribers must be called with the exact same parameters.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions