Skip to main content

📖 Descrição

Dispara o processamento assíncrono da contagem de cruzamentos de preço (spot x future) para um dia. O endpoint retorna imediatamente com 202 Accepted. Em background, o serviço consulta todas as operações spot x future do dia, agrupa por ticker e exchange, calcula a quantidade de cruzamentos por grupo e persiste os resultados na base de dados.

🛠️ Requisição

Método

POST

URL

Body (opcional)

Exemplo de Requisição

Processar o dia atual (body vazio):
Processar uma data específica:

📤 Resposta

Status

202 Accepted A resposta é enviada assim que o processamento é aceito. O trabalho pesado (consulta, agrupamento, contagem e gravação) ocorre em background.

Exemplo de Resposta

Campos da Resposta


📝 Notas

Comportamento:
  • O processamento roda em uma goroutine; não bloqueia a resposta HTTP.
  • Para a data informada (ou dia atual), o serviço busca todas as operações na coleção de operações spot x future, agrupa por (ticker, exchange) e, para cada grupo, conta os cruzamentos (inversão de sinal de spotPrice - futurePrice ao longo da série ordenada por tempo; pontos em que spotPrice == futurePrice são tratados como “toque” e só contam como cruzamento se o sinal de fato inverter).
  • Os resultados são gravados na coleção spot_future_crossing_counts, com documentos contendo: processing_date, ticker, exchange, crossing_count.
  • A gravação é idempotente: cada documento é identificado pela tripla (processing_date, ticker, exchange) e gravado via upsert. Reprocessar a mesma data substitui o valor anterior em vez de inserir duplicatas, evitando que a soma exibida no endpoint de leitura seja inflada.
  • Erros durante o processamento em background são reportados à telemetria; o cliente não recebe retry ou status do job.
Erros comuns:
  • 500: erro ao parsear o body (raro; body é opcional). Falhas no processamento assíncrono não alteram o status HTTP (já foi 202).