linea-it / cutout

MIT License
0 stars 0 forks source link

Real Time Job #6

Closed glaubervila closed 10 months ago

glaubervila commented 1 year ago

O Cliente solicita um cutout para uma única coordenada que vai resultar em uma única imagem.

Pontos Importantes: O que caracteriza como real time é a quantidade de posições solicitadas e quantidade de imagens geradas, neste caso sempre que o usuário enviar apenas um par de coordenadas (RA, Dec) e o resultado for apenas um cutout será tratada como Real Time.

Tempo Limite para Real Time Job, a princípio considerar o timeout padrão de requisições http de 30 segundos, mas este valor deve ser um parâmetro configurável na aplicação, o tempo ideal vai ser calibrado a partir dos testes de usuários reais.

Caso a estimativa de tempo para criar este único cutout seja maior que o tempo limite do Real Time, este pedido será adicionado à fila de Jobs passando a ser um Async Job.

Neste cenário do Real Time Job o endpoint se comporta igual a qualquer outro endpoint REST, permitindo requisições simultâneas de diferentes clientes ou até do mesmo, mas tendo um agravante que é o tempo de processamento da requisição neste caso as requisições que o servidor aceitou como real time mas não conseguir processar vão falhar por timeout (Equivalente a negação de serviço).

No Real Time Job não precisa tratar a prioridade do usuário, já que cada pedido é atendido instantaneamente pelo servidor.

Requisição -> Autenticação -> Autorização -> Verifica os Parâmetros -> Estima o Tempo -> Registra o Pedido -> Processa o pedido de forma Síncrona -> Retorna o Cutout.

glaubervila commented 10 months ago

Essa issue foi reescrita com mais detalhes na issue #15