📖 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):📤 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 despotPrice - futurePriceao longo da série ordenada por tempo; pontos em quespotPrice == futurePricesã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).