@forrestjs/service-fetchq-task
Advanced tools
Comparing version 4.7.0 to 4.7.1-alpha.0
{ | ||
"name": "@forrestjs/service-fetchq-task", | ||
"description": "Simple API to run singleton tasks over a Fetchq queue.", | ||
"version": "4.7.0", | ||
"version": "4.7.1-alpha.0", | ||
"author": "Marco Pegoraro <marco.pegoraro@gmail.com", | ||
@@ -11,3 +11,3 @@ "main": "src/index", | ||
"dependencies": { | ||
"@forrestjs/core": "^4.7.0" | ||
"@forrestjs/core": "^4.7.1-alpha.0" | ||
}, | ||
@@ -30,3 +30,3 @@ "homepage": "https://github.com/forrestjs/forrestjs/tree/master/packages/service-fetchq-task#readme", | ||
}, | ||
"gitHead": "7ad3fe461a8a626999eacb83412133b02683e4d2" | ||
"gitHead": "16934bd5414fc0622128c7907125a4fc343489ae" | ||
} |
# Fetchq Task | ||
Let you add singleton tasks to a Fetchq queue. | ||
> 👉 _Each task gets executed by one single worker at the time, no matter the horizontal scalability of the queue._ | ||
> | ||
> You keep scaling the associated workers as so to run different tasks in parallel. | ||
This is suitable for running stuff akin to a _CRON Job_. | ||
## Configuration | ||
```js | ||
forrest.run({ | ||
settings: { | ||
fetchq: { | ||
task: { | ||
// Register tasks at config time: | ||
// (see "Add Tasks" paragraph for details) | ||
register: [ | ||
{ | ||
subject: 'foobar', | ||
handler: (doc) => doc.reschedule('+1m') | ||
} | ||
], | ||
queue: { | ||
// Customize the queue name: | ||
name: 'foobar', | ||
// Fine tune the queue performances: | ||
// https://github.com/fetchq/node-client#queues-configuration | ||
settings: {} | ||
}, | ||
worker: { | ||
// Fine tune the worker performances: | ||
// https://github.com/fetchq/node-client#workers-configuration | ||
settings: {} | ||
} | ||
} | ||
} | ||
} | ||
}) | ||
``` | ||
## Add Tasks | ||
As configuration: | ||
@@ -4,0 +50,0 @@ |
@@ -1,8 +0,9 @@ | ||
const onInitService = require("./on-init-service"); | ||
const onFetchqReady = require("./on-fetchq-ready"); | ||
const taskWorker = require("./task-worker"); | ||
const onInitService = require('./on-init-service'); | ||
const onFetchqReady = require('./on-fetchq-ready'); | ||
const onFetchqRegisterQueue = require('./on-fetchq-register-queue'); | ||
const onFetchqRegisterWorker = require('./on-fetchq-register-worker'); | ||
const fetchqTask = ({ registerTargets }) => { | ||
registerTargets({ | ||
FETCHQ_REGISTER_TASK: "fetchq/task/register" | ||
FETCHQ_REGISTER_TASK: 'fetchq/task/register', | ||
}); | ||
@@ -12,22 +13,17 @@ | ||
{ | ||
target: "$INIT_SERVICE", | ||
handler: onInitService | ||
target: '$INIT_SERVICE', | ||
handler: onInitService, | ||
}, | ||
{ | ||
target: "$FETCHQ_REGISTER_QUEUE", | ||
handler: { | ||
name: "task" | ||
} | ||
target: '$FETCHQ_REGISTER_QUEUE', | ||
handler: onFetchqRegisterQueue, | ||
}, | ||
{ | ||
target: "$FETCHQ_READY", | ||
handler: onFetchqReady | ||
target: '$FETCHQ_READY', | ||
handler: onFetchqReady, | ||
}, | ||
{ | ||
target: "$FETCHQ_REGISTER_WORKER", | ||
handler: { | ||
queue: "task", | ||
handler: taskWorker | ||
} | ||
} | ||
target: '$FETCHQ_REGISTER_WORKER', | ||
handler: onFetchqRegisterWorker, | ||
}, | ||
]; | ||
@@ -34,0 +30,0 @@ }; |
@@ -9,7 +9,11 @@ /** | ||
module.exports = ({ createExtension, getConfig, setContext }) => { | ||
const queueName = getConfig('fetchq.task.queue.name', 'task'); | ||
const queueSettings = getConfig('fetchq.task.queue.settings', {}); | ||
const workerSettings = getConfig('fetchq.task.worker.settings', {}); | ||
const registerTasks = [ | ||
// Collect from App configuration | ||
...getConfig("fetchq.task.register", []), | ||
...getConfig('fetchq.task.register', []), | ||
// Collect from other extensions | ||
...createExtension.sync("$FETCHQ_REGISTER_TASK").map(($) => $[0]) | ||
...createExtension.sync('$FETCHQ_REGISTER_TASK').map(($) => $[0]), | ||
]; | ||
@@ -24,3 +28,8 @@ | ||
setContext("fetchq.task.register", registerTasks); | ||
setContext('fetchq.task', { | ||
queueName, | ||
queueSettings, | ||
workerSettings, | ||
register: registerTasks, | ||
}); | ||
}; |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
6781
10
103
92
1