Aplicação para gerenciar e monitorar tarefas que são executadas de forma assíncrona.
A Aplicação deve gerenciar Tarefas e Execuções a para fins de segregação e organização de execuções de uma ação ou um mesmo tipo de ação.
- A Aplicação deve ser flexível a receber mútiplos tipos de tarefas e inputs e possibilitar integração de mútiplos módulos
- A Aplicação deve possibilitar a observação de suas tarefas em execução através de Logs enviados de seus módulos
-
Objeto que guarda a regra de negócio da ação a ser executada. Ex:
class SayHelloPayload: name: str def say_hello(payload: SayHelloPayload): print(f'Hello, {name}!')
-
Objeto que descreve a ação a ser executada, através de parâmetros Ex:
{ "type": "SAY_HELLO", "payload": { "name": "Lucas" } }
-
Objeto que agrega uma Tarefa e é utilizado por um Módulo. É utilizado como um registro de uma execução de tarefa.
Ex:
{ "id": "0196d2dc-0dac-474a-a04b-b4d7d924e25a", "task": { "type": "SAY_HELLO", "payload": { "name": "Lucas" } }, "logs": [ { "timestamp": "1647629469423", "level": "INFO", "message": "Said Hello, Lucas!", "loggerName": "Module" }, { "timestamp": "1647629601735", "level": "ERROR", "message": "Couldn't say Hello, Lucas!", "loggerName": "Module", "error": "CantSayHelloException", "stackTrace": "" } ] }
- Poetry
poetry install