script job every python linux django ubuntu

job - Creando un trabajo Cron-Linux/Python



python-crontab (4)

¿Has echado un vistazo a los comandos de administración personalizados para tu aplicación django? Funcionan como cualquier otro comando de manage.py , excepto que puede escribirlos.

Las aplicaciones pueden registrar sus propias acciones con manage.py. Por ejemplo, es posible que desee agregar una acción manage.py para una aplicación Django que está distribuyendo.

Para hacer esto, simplemente agregue un directorio de administración / comandos a su aplicación. Cada módulo de Python en ese directorio se detectará automáticamente y se registrará como un comando que se puede ejecutar como una acción cuando se ejecuta manage.py.

Hola, tengo un script de Django que necesito ejecutar

Creo que los comandos se podrían llamar a través de bash.

La cosa es que el script causa pérdidas de memoria después de un largo período de tiempo, por lo que me gustaría crear un trabajo cron externo que llame al script de Python. Por lo tanto, el script finalizaría y se reiniciaría mientras retomaba la memoria perdida.

¿Alguien me puede apuntar en la dirección correcta? Sé muy poco sobre el tema y me siento un poco perdido.



El problema con un trabajo cron es que se iniciará de vez en cuando, independientemente de si la instancia anterior ha finalizado. Lo que recomendaría es que su script inicie una nueva instancia de sí mismo luego de un cierto período de tiempo, luego salga.


Si tiene un archivo ejecutable, digamos /home/bin/foobar , que reinicia el script y desea ejecutarlo (digamos) cada 10 minutos, la entrada de crontab debe ser:

*/10 * * * * /home/bin/foobar

que dice ejecutarlo a cada minuto divisible por 10, cada hora, todos los días.

Si guarda esto (y cualquier otro trabajo periódico que desee ejecutar) como, por ejemplo, /home/bin/mycrontab , simplemente haga crontab /home/bin/crontab y el sistema hará el resto (el script se ejecuta con su ID de usuario) )

Para ver qué tareas periódicas ya ha programado con el ID de usuario actual, si hay alguna, haga crontab -l .