Tengo una tarea en Apio que podría funcionar durante 10.000 segundos durante el funcionamiento normal. Sin embargo, el resto de mis tareas deberían hacerse en menos de un segundo. ¿Cómo puedo establecer un límite de tiempo para la tarea de ejecución intencionalmente larga sin cambiar el límite de tiempo en las tareas de ejecución corta?Establecer el límite de tiempo en una tarea específica con apio
30
A
Respuesta
44
Puede establecer límites de tiempo de tareas (hard y/o soft) al definir una tarea o durante una llamada.
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
Este es un ejemplo con decorador para una tarea específica y apio 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
También puede asignar 'time_limit' como' @task (soft_time_limit = 10, time_limit = 15) ' –
Cuestiones relacionadas
- 1. ¿Excedió el límite de tiempo de apio de Django?
- 2. Enrutar la tarea de apio a la cola específica
- 3. eliminar tarea/PeriodicTask en apio
- 4. ¿Cancelar una tarea que ya se está ejecutando con Apio?
- 5. ¿Dónde configura el task_id de una tarea de apio?
- 6. ¿Cómo puedo retrasar una tarea usando Apio?
- 7. Anular una tarea en ejecución en Apio dentro de django
- 8. Establecer el límite de tiempo de ejecución en un método en java
- 9. Cómo garantizar que una tarea de apio esté evitando la superposición de las ejecuciones de la tarea de apio
- 10. Restablecer la cuenta atrás en la tarea de apio
- 11. Vuelva a intentar una tarea en apio por task_id
- 12. Tarea de apio que ejecuta más tareas
- 13. Establecer un límite de tiempo de espera para readLine()?
- 14. Prueba si todavía se está procesando una tarea de apio
- 15. ¿Cómo purgar todas las tareas de una cola específica con apio en python?
- 16. programación de la tarea de apio (Asegurar una tarea se ejecuta sólo uno a la vez)
- 17. Ruby - Thor ejecuta una tarea específica primero
- 18. ¿Cómo programo una tarea con Apio que se ejecuta el 1 de cada mes?
- 19. Ejecutar una tarea de Apio cuando no se puede importar esa tarea
- 20. Cómo hacer que una tarea de apio falle dentro de la tarea?
- 21. Apio: por límites de concurrencia por tarea (# de trabajadores por tarea)?
- 22. Establecer un tiempo de espera para una función específica/bloque de código (no todo el script)?
- 23. establecer el límite de recursión de python para una función
- 24. ¿Solución para la prioridad de la tarea de apio en RabbitMQ?
- 25. Apio: acceso al tiempo de la última ejecución de la tarea?
- 26. ¿Cómo establecer el límite de tiempo de grabación de video en iPhone?
- 27. ¿Cómo establecer el directorio de trabajo para una tarea Fabric?
- 28. Django Señales en el apio
- 29. Cómo establecer el límite de memoria en el archivo my.cnf
- 30. Notificar la tarea de apio del cierre del trabajador
nota que los argumentos de tiempo de espera/soft_timeout a apply_async solo está disponible en la versión de desarrollo de apio (rama principal, versión futura 3.1) – asksol
También puede establecer límites de tiempo para una tarea en configuración usando: 'CELERY_ANNOTATIONS = {'module.mytask': {'time_limit': 20.0}}' – asksol
Para apio versiones 3.1.x parece que los argumentos 'timeout/soft_timeout' para' apply_async' también han sido cambiado a 'time_limit/soft_time_limit'. El cambio relevante se introdujo aquí - https://github.com/celery/celery/commit/be6cef2e441e5ecf5857aeb77bd885f06128b9c9 – sanchitarora