Conjunto de utilitários para a produção de tabulações com metadados e métricas e também para o envio de dados à parceiros.
- Python 3.14
Para instalar as dependências e executar a suíte de testes:
docker compose run --rm testsPara executar o processamento via Docker, configure as variáveis em um arquivo
.env local, baseado em .env.example. O .env não deve ser versionado.
cp .env.example .envPreencha no .env os valores equivalentes ao antigo config.ini:
ARTICLEMETA_THRIFTSERVER=
ARTICLEMETA_ADMINTOKEN=
RATCHET_THRIFTSERVER=
ACCESSSTATS_THRIFTSERVER=
CITEDBY_THRIFTSERVER=
PUBLICATIONSTATS_THRIFTSERVER=
SOLR_SEARCH_SCIELO_ORG=
SOLR_SEARCH_SCIELO_ORG_INDEX=
PUBLICATIONSTATS_TIMEOUT_MS=60000
SLACK_WEBHOOK_URL=Depois execute:
docker compose run --rm processing "scl-BR"Os logs ficam persistidos em var/log/processing e os arquivos ZIP gerados em
var/tabs.
O agendamento para Argo Workflows está em k8s/argo-cronworkflow.yaml com o cron:
0 3 1,8,15,22 1-12 *
O workflow executa as coleções sequencialmente. Quando uma coleção falha, o script envia a notificação de erro e continua para a próxima; ao final, o job termina com sucesso para não interromper as próximas execuções agendadas.
Os valores sensíveis devem ser criados em um Secret do Kubernetes chamado
processing-env, baseado em k8s/processing-env.secret.example.yaml. Não
versione o Secret real.
Volumes esperados:
processing-data -> /var/www/static_scielo_org/tabs
processing-logs -> /var/log/processing
Quando uma coleção falha, o run.sh registra o acrônimo em
/var/log/processing/failed_collections.queue por padrão. Na próxima execução,
essa fila é carregada antes da lista normal de coleções; coleções processadas
com sucesso são removidas da fila. O caminho pode ser alterado com
FAILED_COLLECTIONS_FILE.
Aplicação:
kubectl apply -f k8s/processing-env.secret.yaml
kubectl apply -f k8s/argo-cronworkflow.yamlEsta integração é realizada por meio de um robô que obtém os metadados dos documentos a partir do ArticleMeta, já codificados em XML conforme o schema do DOAJ, e os envia, um a um, através do formulário de submissão de artigos em XML, do site do DOAJ. Este processo não é ótimo mas é o único que nos permite enviar metadados em múltiplos idiomas.
Ao depositar um documento, o DOAJ verifica automaticamente se os ISSNs informados correspondem exatamente com os cadastrados em sua base de dados e, no caso de qualquer divergência, o depósito é rejeitado. A fim de contornar este problema, é possível construir uma base de correções que poderá ser utilizada pelo utilitário de depósito. A base de correções é produzida a partir de consultas às bases do DOAJ e, quando aplicada, modifica os metadados dos documentos de forma que os ISSNs fiquem conforme esperado pelo DOAJ.
Para produzir a base de correções e armazená-la em /tmp/corr.jsonl:
python export/gen_doaj_correctionsdb.py gen-correctionsdb > /tmp/corr.jsonlPara executar o depósito dos documentos no DOAJ:
PROCESSING_SETTINGS_FILE=myconfig.ini processing_export_doaj --corrections_db /tmp/corr.jsonl --user US3R --password P4SSW0RDNote que: (a) será necessário criar um arquivo de configurações e atribuí-lo
à variável PROCESSING_SETTINGS_FILE. Este arquivo poderá ser baseado no
exemplo
fornecido no projeto e (b) que o utilitário processing_export_doaj aceita
opções que podem ser usadas de forma a delimitar o conjunto de dados que serão
depositados no DOAJ. Para mais detalhes execute
PROCESSING_SETTINGS_FILE=myconfig.ini processing_export_doaj --help.