Ho un'attività in Celery che potrebbe potenzialmente funzionare per 10.000 secondi mentre funziona normalmente. Comunque tutto il resto dei miei compiti dovrebbe essere fatto in meno di un secondo. Come posso impostare un limite di tempo per l'attività intenzionalmente lunga durata senza modificare il limite di tempo per le attività di breve durata?Impostazione del limite di tempo per attività specifiche con il sedano
30
A
risposta
44
È possibile impostare i limiti di tempo di attività (hard e/o soft) durante la definizione di un'attività o durante la chiamata.
from celery.exceptions import SoftTimeLimitExceeded
@celery.task(time_limit=20)
def mytask():
try:
return do_work()
except SoftTimeLimitExceeded:
cleanup_in_a_hurry()
o
mytask.apply_async(args=[], kwargs={}, time_limit=30, soft_time_limit=10)
5
Questo è un esempio di un decoratore specifica attività e sedano 3.1.23 usando soft_time_limit = 10000
@task(bind=True, default_retry_delay=30, max_retries=3, soft_time_limit=10000)
def process_task(self, task_instance):
"""Task processing."""
pass
+0
Puoi anche assegnare 'time_limit' insieme come' @task (soft_time_limit = 10, time_limit = 15) ' –
Problemi correlati
- 1. Sedano: limite di velocità sulle attività con gli stessi parametri
- 2. django/sedano - stato di sedano: Errore: nessun nodo ha risposto entro il limite di tempo
- 3. pulizia attività sedano con DB backend
- 4. Tempo scaduto per attività di Celery/limite di tempo per Windows?
- 5. sedano conteggio delle attività
- 6. Priorità attività in sedano con redis
- 7. Il conteggio del tempo di sospensione è previsto per il tempo limite di esecuzione?
- 8. Esempi di Django e Sedano: Attività periodiche
- 9. Il limite del parametro "limite" del grafico di Facebook
- 10. Stima del tempo nelle attività
- 11. django sedano terminare sottoprocessi di attività
- 12. Come strutturare le attività di sedano
- 13. Informazioni sul prefetch delle attività di sedano
- 14. "vero" tempo di esecuzione limite
- 15. Attività periodiche in Django su Elean Beanstalk (possibilmente con il ritmo del sedano)
- 16. Aumentare il tempo di sedano tentativi ogni ciclo di tentativi
- 17. Come ottenere il tempo di attività del sistema in Windows?
- 18. Memorizzazione di un ID attività per ogni attività di sedano nella banca dati
- 19. nginx auth_basic limite di tempo
- 20. Uso di django prefetch_related() per ottenere il tempo dell'ultima attività
- 21. Come eliminare tutte le attività di una coda specifica con il sedano in python?
- 22. sedano - Attività che devono essere eseguite con priorità
- 23. Come aggiungere dinamicamente/rimuovere le attività periodiche di sedano (celerybeat)
- 24. utilizzando i metodi di classe come attività di sedano
- 25. In sedano come ottenere lo stato dell'attività per tutte le attività per nome attività specifico?
- 26. Il sedano interrompe l'esecuzione di una catena
- 27. Interruzione query SQL con limite di tempo di processo
- 28. definire le attività specifiche del progetto in leiningen
- 29. SQS con la configurazione del sedano
- 30. il ritmo del sedano non funziona correttamente
nota che gli argomenti timeout/soft_timeout a apply_async è disponibile solo nella versione di sviluppo di sedano (ramo principale, versione futura 3.1) – asksol
È inoltre possibile impostare i limiti di tempo per un'attività in configurazione usando: 'CELERY_ANNOTATIONS = {'module.mytask': {'time_limit': 20.0}}' – asksol
Per le versioni di sedici 3.1.x sembra che gli argomenti 'timeout/soft_timeout' su' apply_async' siano stati anche cambiato in "time_limit/soft_time_limit'. La modifica rilevante è stata introdotta qui: https://github.com/celery/celery/commit/be6cef2e441e5ecf5857aeb77bd885f06128b9c9 – sanchitarora