2013-06-10 6 views
8

Ho un'app Web scritta in Flask che è attualmente in esecuzione su IIS su Windows (non chiedere ...).Tempo scaduto per attività di Celery/limite di tempo per Windows?

Utilizzo di Celery per gestire alcune elaborazioni asincrone (accesso a un database lento e generazione di un report).

Tuttavia, quando si cerca di impostare alcuni comportamenti per la gestione degli errori, mi sono imbattuto in questo nel docs:

"limiti di tempo al momento non funzionano su Windows e altre piattaforme che non supportano il segnale SIGUSR1 ".

Poiché il DB può diventare molto lento, mi piacerebbe molto essere in grado di specificare un comportamento di timeout per le mie attività, e riprovare più tardi quando il DB potrebbe non essere così incaricato. Dato che l'app, per vari motivi, deve essere servita da Windows, c'è qualche soluzione per questo?

Grazie mille per il vostro aiuto.

risposta

0

Non sembra che ci sia una soluzione alternativa per questo in Celery. Potresti forse codificare questo nel tuo compito direttamente? In altre parole, nel codice Python, avviare un timer quando si inizia l'attività, se l'attività richiede troppo tempo per essere completata, generare un'eccezione e inviare di nuovo il lavoro alla coda.