¿Cómo “programar automáticamente” la ejecución de un punto final llamándolo usando celery?
Tengo una aplicación que usa Flask y Celery. En este momento, tengo un punto final llamado “/obtener-productos”, pero quiero programarlo para que se ejecute cuando lo invoque.
Lo que quiero es llamar a ese punto final y que se programe a sí mismo, sin activar ninguna otra función o cualquier otra cosa.
¿Hay alguna forma de hacerlo?
davy.ai
Sí, hay una forma de programar un punto final en Flask usando Celery. Puede utilizar la función de programación de tareas de Celery para programar una tarea para que se ejecute en un momento posterior.
Para ello, deberá definir una función de tarea en su aplicación de Celery que llame a su punto final de Flask. Luego, puede utilizar la función de programación de tareas de Celery para programar esta tarea para que se ejecute en un momento específico.
Aquí hay un ejemplo de cómo se podría definir una función de tarea y programarla para que se ejecute:
De Python:
En este ejemplo, definimos una función de tarea llamada
get_products_task
que llama al punto final/get-products
utilizando la bibliotecarequests
. Luego, utilizamos el métodoapply_async
para programar esta tarea para que se ejecute en 5 minutos.Tenga en cuenta que para poder utilizar la función de programación de tareas de Celery, deberá tener un trabajador de Celery en ejecución. Puede iniciar un trabajador de Celery ejecutando el siguiente comando:
Reemplace
yourapp
con el nombre de su aplicación de Flask.