/ / Asynchroniczne pobieranie danych i obsługa pamięci podręcznej - django, seler, django-celery, django-cache

Asynchroniczne pobieranie danych i obsługa pamięci podręcznej - django, seler, django-selery, django-cache

Planuję wdrożyć witrynę dynamiczną, którapotrzebuje pewnych zadań do okresowego wykonywania w tle, powiedzmy co godzinę lub dwie. Dane, które muszę wyprowadzać, są ściśle zależne od wyniku tych zapytań.

Problem polega na tym, że zadania te wymagająokreślony czas, np. 8-10 minut: więc jeśli użytkownik prosi o stronę, a zatem wywoływany jest określony widok, a to zadanie jest nadal w toku, wszystko idzie źle.

Oto pytanie: co muszę wdrożyć, aby poradzić sobie z tym problemem? Szukałem i znalazłem informacje na temat selera, ale nie rozumiem, jak można go rozwiązać, aby rozwiązać powyższy problem i być może wdrożyć system buforowania, który interweniuje, gdy zadania nie zostaną jeszcze zakończone.

Odpowiedzi:

2 dla odpowiedzi № 1

Rozwiązaniem może być: Widok będzie wyświetlał wyniki z pamięci podręcznej, po zakończeniu zadania ten zaktualizuje wyniki z pamięci podręcznej o nowe. Możesz również użyć selera w ten sposób, gdy trafi się buforowany widok i trzeba go ponownie obliczyć, zadanie selera zostanie odłączone (widok zwróci buforowaną wartość).

Oto ciekawy przykład pojedynczego selera: http://ask.github.com/celery/cookbook/tasks.html