Rascal activities for worksmith
This package contains the following activities/tasks:
name | description |
---|---|
publish | Publishes a message a rascal publication |
receiveOne | Receives a message from a rascal publication |
Publish as message to a rascal publication
name | type | description |
---|---|---|
broker | Rascal Broker | Will look in context.broker if not specified |
publication | Publication id | Where to send the message |
payload | The payload to publish | |
routingKey | Routing key to use when publishing the message. Will override the routing key defined in the publication | |
options | Other publication options (see rascal documentation) |
var worksmith = require('worksmith')
worksmith.use('rascal', require('worksmith_rascal'))
var workflow = worksmith({task:"sequence", items : [{
task:'rascal/publish',
broker: '@broker',
publication: 'p1',
payload: 'test message',
resultTo: 'messageId'
}])
Receives exactly one message from a subscription within a given timeout. Causes an error if no message could be received.
When a message is received the result is { message: rabbitMsg, content: parsed<message.content> }
name | type | description |
---|---|---|
broker | Rascal Broker | Will look in context.broker if not specified |
subscription | Subscription id | Rascal subscription name to receive from |
timeOut | milliseconds | amount of time to wait for a message |
options | Other subscription options (see rascal documentation) |
var worksmith = require('worksmith')
worksmith.use('rascal', require('worksmith_rascal'))
var workflow = worksmith({task:"sequence", items : [{
task:'rascal/receiveOne',
broker: '@broker',
subscription: 's1',
resultTo: 'message'
}])
You need an rabbitmq server running on localhost:5672 for the tests to pass. If you have docker and docker-compose installed simply run docker-compose up
in the route of this project.