3. Типичные задачи
Массовый импорт данных
Массовый экспорт данных
Расчет рейтингов (например, лучшие вопросы)
Очистка устаревших данных
И вообще все периодические работы
Статистика, статистика, статистика
4. Cron – стандартный планировщик задачв linux
Задача = команда оболочки (bash) в linux
5. Проблемы
Скрипт может работать долго
Скрипт может в принципе не успевать
обработать нужный объем данных
Скрипт может потреблять много ресурсов
В каждом скрипте нужно настраивать
окружение: соединение с базой, пути к файлам
и т.п.
Не чаще раза в минуту
6. Решения
Использовать блокировку файлов (flock)
Распараллелить обработку. Запускать
несколько процессов
Запускать скрипты на отдельной машине.
Использовать scribe для перемещения логов
Использовать managementcommand (в Django)
Cron плохо масштабируется, дает задержки
12. Что еще нужно для
хорошей очереди
Протокол передачи параметров задач
Получение результатов
Слежение за worker – процессами
Нужное количество
Ограничение нагрузки
Борьба с падениями
Борьба с утечками памяти
Удобный мониторинг
24. Особенности Sphinx
Легкая интеграция с базами и приложениями
Batch и real-time индексы
Гибкий язык поисковых запросов
SQL – like syntax
Хорошие функции релевантности
Масштабирование