0.0.7 • Published 2 years ago

iacon-mb v0.0.7

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

iacon-mb

Gerenciador de fila de tarefas

Como instalar:

npm i iacon-mb

Como importar

const mb = require('iacon-mb');

Como adicionar tarefas na fila

await project.add('fila_teste', { message: "Olá SubHeaven 1" });
await project.add('fila_teste', { message: "Olá SubHeaven 2" });
await project.add('fila_teste', { message: "Olá SubHeaven 3" });

Como processar uma tarefa

Ao processar uma tarefa, devemos passar para o iacon-mb uma função que tratará o payload armazenado na fila

let log = await project.process('fila_teste', async (payload, task) => {
    console.log(`Processando a tarefa: ${task._id}`);

    Outros comandos...

    console.log("Tarefa processada");
}, debug=true);

console.log("##################################################################################");
console.log("###  LOG                                                                       ###");
console.log("##################################################################################");
let lines = log.split("\n");
await lines.forEachAsync(async line => {
    console.log(`###  ${line}`);
});
console.log("##################################################################################");

Se ocorrer algum erro durante o processamento da tarefa, o iacon-mb adiciona o log com o erro no historico e retorna a tarefa pra fila

let log = await project.process('fila_teste', async (payload, task) => {
    console.log(`Processando a tarefa: ${task._id}`);

    task.oioioi(); // <-- Linha que vai gerar uma exceção

    console.log("Tarefa processada");
}, debug=true);

console.log("##################################################################################");
console.log("###  LOG                                                                       ###");
console.log("##################################################################################");
let lines = log.split("\n");
await lines.forEachAsync(async line => {
    console.log(`###  ${line}`);
});
console.log("##################################################################################");

Outras funções úteis

Listar todas as tarefas

let tasks = await project.list('fila_teste');
console.log(tasks);

Ao executar uma tarefa com sucesso o iacon-mb exclui a tarefa da lista de pendentes e move os dados da tarefa pra uma lista de tarefas finalizadas que possui sufixo _hist:

Listar tarefas já executadas

let tasks = await project.list('fila_teste_hist');
console.log(tasks);