Thread View: pl.comp.lang.python
3 messages
3 total messages
Started by zbrodel
Tue, 16 Nov 2010 09:53
djcelery i nieuwzględnianie zmian przez celerybeat
Author: zbrodel
Date: Tue, 16 Nov 2010 09:53
Date: Tue, 16 Nov 2010 09:53
32 lines
2161 bytes
2161 bytes
Witam Ponieważ potrzebuję w systemie funkconalności zlecania do wykonania o określonych porach, eksperymentuje z djcelery. Eksperymenty wypadają obiecująco, ale mam dwa problemy (w zasadzie to są dwie instancje ;) tego samego problemu). 1. Jeśli usunę z tablicy (za pomocą django admina) Periodic Task, to celerybeat wywala się z komunikatem: DoesNotExist: PeriodicTask matching query does not exist. 2. Podobnie, jeśli zdefiniuję nowy PeriodicTask, to nie jest on wykonywany dopóki nie zostanie zrestartowany celerybeat. Natomiast zmiany w istniejących taskach (np. zmmiana definicji Crontab-a czy przypisanie do innego crontaba czy intervala) widoczne są online. Czyli celerybeat nie uwzględnia zmian (usuwania i tworzenia) w modelu PeriodicTask. I tu pytanie, czy da się jakoś zrobić, żęby to uwzględniał? Próbowałem szukać, ale niczego nie znalazłem. Celerybeat uruchamiam (dla developerki) tak: python manage.py celerybeat -S djcelery.schedulers.DatabaseScheduler Konieczność ręcznego restartowania celerybeat w przypadku zlecenia przez użytkownika nowego Taska z oczywistych powodów nie wchodzi w grę. Natomiast rozwiązania w stylu restartowania celerybeat trigerowane zmianami na modelu PeriodicTask wydają mi się straszliwym hakowaniem. Wolałbym rozwiązać to jakoś elegancko. Pozdrawiam J.
Re: djcelery i nieuwzględnianie zmian przez celerybeat
Author: Maniek
Date: Mon, 03 Jan 2011 16:26
Date: Mon, 03 Jan 2011 16:26
41 lines
3208 bytes
3208 bytes
On 16 Lis 2010, 10:53, zbro...@tlen.pl wrote: > Witam > > Ponieważ potrzebuję w systemie funkconalności zlecania do wykonania o > określonych porach, eksperymentuje z djcelery. Eksperymenty wypadają > obiecująco, ale mam dwa problemy (w zasadzie to są dwie instancje ;) > tego samego problemu). > > 1. Jeśli usunę z tablicy (za pomocą django admina) Periodic Task, to > celerybeat wywala się z komunikatem: > DoesNotExist: PeriodicTask matching query does not exist. > > 2. Podobnie, jeśli zdefiniuję nowy PeriodicTask, to nie jest on > wykonywany dopóki nie zostanie zrestartowany celerybeat. > > Natomiast zmiany w istniejących taskach (np. zmmiana definicji Crontab-a > czy przypisanie do innego crontaba czy intervala) widoczne są online. > > Czyli celerybeat nie uwzględnia zmian (usuwania i tworzenia) w modelu > PeriodicTask. I tu pytanie, czy da się jakoś zrobić, żęby to > uwzględniał? Próbowałem szukać, ale niczego nie znalazłem. Celerybeat > uruchamiam (dla developerki) tak: > > python manage.py celerybeat -S djcelery.schedulers.DatabaseScheduler > > Konieczność ręcznego restartowania celerybeat w przypadku zlecenia przez > użytkownika nowego Taska z oczywistych powodów nie wchodzi w grę. > Natomiast rozwiązania w stylu restartowania celerybeat trigerowane > zmianami na modelu PeriodicTask wydają mi się straszliwym hakowaniem. > Wolałbym rozwiązać to jakoś elegancko. > > Pozdrawiam > J. Spróbuj dodać: celery.backend_cleanup: * * * (m/h/d) do http://localhost:8000/admin/djcelery/periodictask/ Ja tu ustawiłem testowo co minutę czyści backend i działa. Też testuje djcelery. Udało Ci się to odpalić produkcyjnie? U mnie jest jeszcze taki problem, że w panelu admina nie zgłasza mi się worker jak ONLINE i nie widzę listy tasków. Pewnie czegoś zapomniałem ale na razie to mi nie działa,
Re: djcelery i nieuwzględnianie zmian przez celerybeat
Author: zbrodel
Date: Tue, 04 Jan 2011 07:51
Date: Tue, 04 Jan 2011 07:51
32 lines
2512 bytes
2512 bytes
On 03.01.2011 17:26, Maniek wrote: > > Spróbuj dodać: > celery.backend_cleanup: * * * (m/h/d) do http://localhost:8000/admin/djcelery/periodictask/ > Ja tu ustawiłem testowo co minutę czyści backend i działa. > Też testuje djcelery. Udało Ci się to odpalić produkcyjnie? Jestem w fazie zaawansowanych testów. Ogólnie jest nieźle, aczkolwiek w ciągu miesiąca zaliczyłem jeden pad rabbitmq bez śladu w logach że coś jest nie tak. No i mam ten problem o którym pisałem. Ale tak poza tym to bangla nieźle. Trzeba pamiętać, że jeśli używa się djcellery, to celerbeat musi być odpalony z opcją -S djcelery.schedulers.DatabaseScheduler, bo inaczej nie czyta definicji tasków z bazy djangowej, tylko ze swojej. W dokumentacji jest to niestety wspomniane gdzieś mimochodem, a to ważna rzecz. Cleanup mam ustawiony, ale i tak po usunięciu tasku się wykrzacza - wykrzacza się z tego co zauważyłem w momencie dotknięcia się przez celerybeat do tasków, więc cleanup nie ma szans się wykonać. > U mnie jest jeszcze taki problem, że w panelu admina nie zgłasza mi > się worker jak ONLINE i nie widzę listy tasków. > Pewnie czegoś zapomniałem ale na razie to mi nie działa, Sprawdź jak masz uruchomiony celerybeat, i pamiętaj że wtedy nie tworzysz tasków "ręcznie", jak w dokumentacji celery napisano, tylko właśnie musisz utworzyć odpowiednie instancje modelu PeriodicTask (no i niestety zrestartować demony, nie wiem jeszcze jak to obejść) J.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads