Cualquier sistema de cola de trabajos que permiten programar trabajos por fecha?
-
29-09-2019 - |
Pregunta
Tengo una aplicación Django.
Uno de mis modelos es similar al siguiente:
class MyModel(models.Model):
def house_cleaning(self):
// cleaning up data of the model instance
Cada vez que puedo actualizar una instancia de MyModel, que había necesidad de limpiar los datos de los días más tarde N. Así que me gustaría programar un trabajo a la llamada
this_instance.house_cleaning()
N días a partir de ahora.
¿Hay alguna cola de trabajo que me permita a:
- integran bien con Django - me permite llamar a un método de instancias de modelo individuales
- Sólo ejecutar los trabajos que están programados para funcionar hoy
- fracasos mango Idealmente gracia
Gracias
Solución
django-cronógrafo podría ser bueno para su caso de uso. Si usted escribe sus trabajos de limpieza como django comandos, a continuación, se programa para que se ejecuten en algún momento. Se ejecuta utilizando UNIX cron detrás de la escena.
Otros consejos
¿Hay alguna razón por la que una tarea programada no funcionaría? O algo así django-cron que se comporta de la misma manera? Es bastante fácil de stand-escritura guiones Django solo. Si desea gatillo limpieza de la casa en un cambio de modelo que después de un cierto número de días, por qué no crear una bandera fecha en el modelo que se establece en N días en el futuro, cuando las necesidades de trabajo que se prevé? Se podría ejecutar un script en una base diaria que tira de todos los registros donde la fecha es <= hoy, llama al método house_cleaning()
de la instancia y luego despeja el campo de fecha. Si se produce una excepción durante el proceso, que es bastante fácil para iniciar la sesión o despachar un correo electrónico.