[pyar] Scheduling de envío de comandos

Martin Alderete malderete en gmail.com
Jue Jul 23 16:03:50 ART 2015


Francisco,
Como va?

Para hacer eso, tener tareas que se "planifican" desde la DB,  lo que he
hehco (generalmente se hace) es usar otro "Schdeuler" y no el que trae
Celery por default.

Personalmente lo que hice es instalar "djcelery" (
https://github.com/celery/django-celery) y usar el scheduler
"DatabaseScheduler" que viene con "djcelery". Este scheduler
(DatabaseScheduler) lo que hace es buscar modelos "PeriodicTask" (tambien
de "djcelery.models") en la DB y planifica esas tareas. "Djcelery" viene
preparado para que uses el "admin de django", pero podrias hacerlo si fuera
necesario "a mano" generando "PeriodicTask" y guardandolas en la db, esto
no lo hice pero deberia ser factible luego de ver el codigo =D.
Cuando se crea un "PeriodicTask" se lanza una signal de Django que
actualiza "PeriodicTasks" (plural) y el scheduler recarga las tasks.

Para correr celery con DatabaseScheduler lo que hice es:

celery -A <proyecto> beat -S djcelery.schedulers.DatabaseScheduler

Bueno, Espero que sirva y nos ea una ensalada :)

Cualquier cosa avisa

Saludos




2015-07-23 13:53 GMT-03:00 Francisco Roldan <franciscoproldan en gmail.com>:

> Buenas!, Martín te consulto ya que había hecho una pregunta parecida en la
> lista.
> Yo estoy usando Celery Beat y el problema justamente es que tengo la
> configuración de "a que hora se ejecuta la tarea" en una base de datos y
> cuando se cambia ese valor tengo que restartear celerybeat. No conoces
> alguna forma automágica de hacer eso, por ejemplo desde django usando una
> signal o sobreescribiendo el save() del modelo? o no queda otra de hacerlo
> a pata?
>
> Gracias
>
>
>
> El 23 de julio de 2015, 13:48, Martin Alderete <malderete en gmail.com>
> escribió:
>
>> Buenas!
>> Como va?
>>
>> Con Celery (especialmente el scheduler "Celery Beat") y algun poco de
>> laburo lo podrias hacer, el tema es que si esa configuracion es de la db y
>> cambia deberias restartear el daemon etc.... Ojo! Se puede porque lo he
>> hecho pero no siempre vale la pena.
>>
>> Una alternativa (si aplica) es usar "django-cron" (
>> http://django-cron.readthedocs.org/en/latest/) basicamente creas
>> "Comandos" y pones un cron en el sistema ponele cada 1 minuto ese cron
>> ejecuta un management command de "django-cron" que se fija si debe correr
>> alguna tarea en ese momento y lo hace.
>>
>> Espero te sirva
>> Saludos,
>>
>>
>> 2015-07-23 13:39 GMT-03:00 Manuel Kaufmann <humitos en gmail.com>:
>>
>>> El 23/07/15 a las 12:11, Willians Vivanco escribió:
>>>
>>>> He estado leyendo un poco de celery, pero no me queda claro como lograr
>>>> algo como:
>>>>
>>>> Hora                      Comando
>>>> -------------------------|----------------------------------------
>>>> 12:33:10.345          Reproducir material1.mov
>>>> 13:21:45.220          Precargar material2.mov
>>>>
>>>
>>> No entiendo muy bien el problema.
>>>
>>> Básicamente con Celery vos podes decir:
>>>
>>> - "ejecutá esta función de Python a esta hora exacta"
>>>
>>> - "ejecutá esta función de Python todos los días a las 00:23"
>>>
>>> etc
>>>
>>> Ahora, en esa función de Python podés hacer lo que quieras ;)
>>>
>>>
>>> --
>>>
>>> Kaufmann Manuel
>>> -- http://elblogdehumitos.com.ar/
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>>
>> --
>> Martin Alderete
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Martin Alderete
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150723/a91bb7f3/attachment.html>


More information about the pyar mailing list