Datos-COVID19
Datos-COVID19 copied to clipboard
Estrategias de optimización de código
Hola, considerando que la audiencia de ese github es experta en procesamiento de datos y que el código de la campaña de vacunas se está demorando bastante (más de 45 minutos cada vez que corre), se me ocurrió que quizás sería una buena idea preguntarles si se les ocurren otimizaciones https://github.com/MinCiencia/Datos-COVID19/blob/master/src/vacunacion.py.
Quedamos atentos a sus sugerencias.
¡Gracias!
Hola @IgnacioAcunaF, tengo implementado un scraper usando matrix
para correr en paralelo distintos trabajos A.py
, B.py
,..., F.py
.
- En mi caso los resultados de cada scraper generaban un archivo nuevo distinto que se subía al repositorio.
-
matrix
es una solución muy potente para correr muchos scapers en paralelo (robusta, monitoreable y paralela). - Me da la impresión que no tiene problemas de concurrencia.
El código se ve así:
name: main
on:
schedule:
- cron: "0 6 * * 4"
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
scraper:
strategy:
fail-fast: false
matrix:
scr: ['A', 'B','C','D','E','F']
name: ${{ matrix.scr }}
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
# Runs a single command using the runners shell
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: "3.7"
- name: Install Python dependencies
run: |
pip install -r requirements.txt
# Runs a set of commands using the runners shell
- name: Actualizar
run: |
git pull
python3 scrapers/${{ matrix.scr }}.py
- name: Commit data files
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
git status
git reset --hard
git pull
git add -A
git commit -a -m "Added new date" || echo "Nothing to commit"
- name: Push changes
continue-on-error: true
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: main
force: true
Excelente, muchas gracias @pescap. Lo revisaremos en el contexto de la optimización del proceso de generación de insumos de vacunación. Saludos!
Ahí también podría ser muy útil: https://github.com/MinCiencia/Datos-CambioClimatico/blob/main/src/actualizar_github.py saludos!