Alternative a cron?

Ciao,
ho bisogno di settare uno scheduler che ogni tot ore gira uno script. Su linux conosco bene cron, ma in questo caso deve essere qualcosa che gira su diversi sistemi operativi. Preferirei una soluzione unica dove posso scrivere delle istruzioni che van bene più o meno su qualsiasi sistema.

Esiste qualcosa di facile Cross-platform?
Non e’ niente di complicato, e’ uno script python semplice che fa una query e se riceve una certa risposta manda una mail.

Grazie

Ciao!

Esistono diverse opzioni per gestire un task scheduler cross-platform. Una soluzione semplice e popolare è utilizzare il modulo “schedule” in Python. Questo modulo ti consente di definire i compiti programmati in modo simile a cron, ma in un modo più facile da usare per i programmatori Python. Inoltre, funziona su Windows, Linux e macOS.

Ecco un esempio di come usare il modulo “schedule” per eseguire uno script ogni due ore:

scssCopy code

import schedule
import time
import subprocess

def run_script():
    subprocess.run(["python", "path/to/script.py"])

schedule.every(2).hours.do(run_script)

while True:
    schedule.run_pending()
    time.sleep(1)

Questo codice definisce la funzione “run_script” che esegue lo script Python che vuoi far girare, e quindi definisce un compito programmato che esegue questa funzione ogni due ore. Infine, viene avviato un ciclo infinito che esegue i compiti programmati ogni secondo.

Questo codice dovrebbe funzionare su tutti i sistemi operativi, purché Python sia installato e la tua query possa essere eseguita su tutti i sistemi.

:asd:

Ah grazie, manco sapevo che si potesse fare da dentro python :asd:
Ci provo.

1 Like

Mi sembra una porcata, ma non sono un espertone :asd: Per me orchestratore = Airflow, ma su altri use case

Le porcate qui van benissimo, probabilmente e’ la roba più raffinata che ste macchine han visto fare :asd:

Si riconosce lontano un chilometro la roba di ChatGPT perche’ e’ gentile :asd:

Cmq si, se vuoi roba cross platform vai di python.

3 Likes

se il database non è il locale ma fuori, volendo puoi usare una lambda di aws e schedularla ogni tot…
overkill?