0.2.4 • Published 7 years ago
worksmith_rascal v0.2.4
worksmith_rascal
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 activity
Publish as message to a rascal publication
params
| 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) |
example
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'
}])receiveOne activity
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> }
params
| 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) |
example
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'
}])Running tests
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.