@alpha-lambda/tasks
This is a simple task management library, for use in Lambda, connected to SQS and maybe Kinesis.
Usage
First, define tasks:
tasks.js
const tasks = require('@alpha-lambda/tasks');
module.exports = tasks([
{
type: 'foo',
schedule(context, tasks) {
},
execute(context, tasks, Task) {
},
validate(task) {
},
format(detail) {
},
},
]);
Schedule some tasks:
const Task = require('./tasks');
module.exports.scheduleTasks = async (event, context) => {
await Task.schedule(context, [
new Task('foo'),
new Task('bar', { foo: true }),
]);
};
Then, in some other code, such as a Lambda hooked up to SQS as an event source:
module.exports.handler = async (event, context) => {
const messages = ...
const tasks = messages.map(message => {
const parsed = JSON.parse(message);
return Task.fromJSON(parsed);
});
await Task.execute(context, tasks);
};