Descrição da nova funcionalidade
Eu, como membro do time de dados, gostaria que fosse desenvolvida uma rotina de sincronização de dados do índice raw_openalex_works, então esse índice estará totalmente sincronizado com os dados atuais da API OpenAlex. Uma primeira carga de dados foi realizada a partir de snapshot baixado.
Critérios de aceitação
Lista de critérios a serem observados pela equipe durante a elaboração e construção da tarefa:
- A integração deve ser assíncrona, encapsulada em uma task do Celery (ex:
harvest_openalex_works);
- O consumo da API do OpenAlex (
/works) deve utilizar as técnicas recomendadas na documentação oficial deles (como paginação via cursor);
- A rotina deve possuir mecanismos explícitos para lidar com limitação de taxa (Rate Limits / 429 Too Many Requests) da API externa (ex: uso de
sleep configurável ou fila do Celery rate-limited);
- O processo deve ser incremental (utilizando parâmetros de filtro de data de atualização do OpenAlex, como
from_updated_date) para otimizar o tempo e recurso de coleta;
- Todos os erros de payload ou queda de requisição devem ser monitorados e, de algum modo, sinalizar que há necessidade de novas tentativas;
- Devem ser criadas tarefas auxiliares de reprocessamento (retries) e reindexação, similares às de Preprints e Dataset;
- Os dados ingeridos de Works precisam ser filtrados (não deve-se obter trabalhos com o campo
is_xpac:True e indexados com sucesso no OpenSearch, nos moldes do raw_openalex_works.
Anexos
N/A
Referências
Descrição da nova funcionalidade
Eu, como membro do time de dados, gostaria que fosse desenvolvida uma rotina de sincronização de dados do índice raw_openalex_works, então esse índice estará totalmente sincronizado com os dados atuais da API OpenAlex. Uma primeira carga de dados foi realizada a partir de snapshot baixado.
Critérios de aceitação
Lista de critérios a serem observados pela equipe durante a elaboração e construção da tarefa:
harvest_openalex_works);/works) deve utilizar as técnicas recomendadas na documentação oficial deles (como paginação viacursor);sleepconfigurável ou fila do Celery rate-limited);from_updated_date) para otimizar o tempo e recurso de coleta;is_xpac:Truee indexados com sucesso no OpenSearch, nos moldes do raw_openalex_works.Anexos
N/A
Referências
harvest/tasks.py