Асинхронная выборка данных и обработка кэша - PullRequest
1 голос
/ 13 сентября 2011

Я планирую развернуть динамический сайт, которому необходимо периодически выполнять определенные задачи в фоновом режиме, скажем, каждый час или два. Данные, которые мне нужно вывести, строго зависят от результата этих запросов.

Теперь проблема в том, что эти задачи требуют определенного времени, например 8-10 минут: так что если пользователь запрашивает страницу, и, следовательно, вызывается определенное представление, и эта задача все еще выполняется, все идет плохо.

Итак, вот вопрос: что мне нужно реализовать для решения этой проблемы? Я искал и нашел информацию о сельдерее, но я не понял, как ее можно использовать для решения вышеуказанной проблемы и, возможно, реализовать систему кэширования, которая вмешивается, когда задачи еще не завершены.

1 Ответ

2 голосов
/ 13 сентября 2011

Решение может быть следующим: представление будет обслуживать кэшированные результаты; когда задача завершена, она обновит кэшированные результаты новыми.Здесь вы также можете использовать сельдерей таким образом, когда удаляется кэшированное представление и его необходимо пересчитать, задача сельдерея отсоединяется (представление возвращает кэшированное значение).

Здесь есть интересный примеродноразовое задание из сельдерея: http://ask.github.com/celery/cookbook/tasks.html

...