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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top