actionhero
Version:
The reusable, scalable, and quick node.js API server for stateless and stateful applications
36 lines (31 loc) • 939 B
text/typescript
import { api, log, task, CLI, ParamsFrom } from "./../../../index";
export class TaskEnqueueCLI extends CLI {
name = "task-enqueue";
description = "Enqueue a defined Task into your actionhero cluster";
example =
"actionhero task enqueue --name=[taskName] --args=[JSON-encoded args]";
inputs = {
name: {
required: true as true,
description: "The name of the Task to enqueue",
letter: "n",
},
args: {
required: false,
description: "Arguments to the Task (JSON encoded)",
letter: "a",
},
};
async run({ params }: { params: ParamsFrom<TaskEnqueueCLI> }) {
if (!api.tasks.tasks[params.name]) {
throw new Error('Task "' + params.name + '" not found');
}
let args = {};
if (params.args) {
args = JSON.parse(params.args);
}
const toRun = await task.enqueue(params.name, args);
log(`enqueued: ${toRun}`, "info");
return true;
}
}