0.1.4 • Published 8 years ago
errand v0.1.4
errand
errand task automation producer
Errand provides task automation. Errand uses a list of tasks to complete jobs. Work is performed by errand components. The task list is used to configure errand components.
Usage
npm install
node ./node_modules/errand/lib/errand-producer.js --job .\errand-sample-job.jsonNotes:
- Prior to running
errand-producer.jsrequired components must be running. Refer to errand-example for suggested strategy for how to deploy errand worker components using pm2. --jobcontains tasks list.--dircontains file location of resources, setting required for components with file resources for example file location of email template files used by errand-message, directory location is passed without trailing slash.--mapcontains json file describing list of objects for mapping task list to.
Dependencies
Example Task List
{
"queue": {
"execution":"replace-with-queue-task-execution-mode"
},
"tasks": [
{
"task": "replace-with-task-name",
"data": {
"description": "replace-with-task-description",
"request": { ... }
}
}
]
}Notes:
- queue - queue options
- queue.execution - required queue task execution mode, either
synchronouswhere each task is processed sequentially orasynchronouswhere each task does not wait for previously submitted task(s) - tasks - required task list
- tasks[].task - required task name
- tasks[].data.description - optional task description
- tasks[].data.request - required task payload
Example using mapping
The following section describes how to use the map option.
Result of mapping example
hello a this is 1
hello b this is 2Exmaple of task list with mapping placeholders
{
"queue": {
"execution":"synchronous"
},
"tasks": [
{
"task": "errand-logger",
"data": {
"description": "message to user",
"request": {
"message": "hello {{_id}} this is {{me}}"
}
}
}
]
}Example of the json mapping object used to create mapping exmple
[
{
"{{_id}}": "a",
"{{me}}": "1"
},
{
"{{_id}}": "b",
"{{me}}": "2"
}
]Links
How to contribute
The objective of errand is to create a useful set of components that can be used for digital marketing automation. Feel free to provide feedback and request new features in issues.