Un collega e io abbiamo riscontrato un problema su cui abbiamo opinioni multiple.
Attualmente abbiamo un repository git in cui stiamo mantenendo tutti i nostri cronjob. Ci sono circa 20 croni e non sono realmente correlati, tranne per il fatto che sono tutti piccoli script in pitone ed essenziali per alcune attività. Stiamo usando un fabric.py
file da distribuire e un requirements.txt
file per gestire i requisiti per tutti gli script.
Il nostro problema è fondamentalmente: teniamo tutti questi script in un repository git o dovremmo separarli nei loro repository? Conservandoli in un repository è più semplice distribuirli su un server. Possiamo usare solo un file cron per tutti gli script.
Tuttavia, questo sembra sbagliato, poiché i 20 cronjob non sono logicamente correlati. Inoltre, quando si utilizza un requirements.txt
file per tutti gli script, è difficile capire quali siano le dipendenze per un determinato script e tutti devono usare le stesse versioni dei pacchetti.
Potremmo separare tutti gli script nei loro repository ma questo crea 20 repository diversi che devono essere ricordati e trattati. La maggior parte di questi script non sono molto grandi e quella soluzione sembra eccessiva.
Una domanda correlata è: utilizziamo un grande file crontab per tutti i cronjob o un file separato per ciascuno? Se ognuno ha il proprio, come fa l'installazione di un crontab a evitare di sovrascrivere l'altro 19? Anche questo sembra un dolore, dato che ci sarebbero 20 diversi file cron da tenere traccia.
In breve, la nostra domanda e questione principale è: li teniamo tutti strettamente raggruppati come un unico repository o li separiamo nel loro repository con i loro requisiti.txt e fabfile.py? Riteniamo che probabilmente stiamo anche cercando una soluzione davvero semplice. C'è un modo più semplice per affrontare questo problema?