читаю документацию по сельдерею. Я понял, что параллелизм может быть реализован разными типами: https://github.com/celery/celery/tree/master/celery/concurrency
Как я могу выбрать правильный (например, Gevent многопроцессорной обработки или eventlet) и почему?
И еще вопрос - можноЯ определяю работников в .py файлах? Или я могу запускать рабочих только из командной строки?
У меня есть два типа задач: 1. Работа с базами данных SQL и экспорт данных в CSV-файлы. 2. выполнить некоторые sql на базах данных
Расширяя сказанное @dejanlekic:
Выберите многопроцессорную обработку / предварительную обработку по умолчанию и отклоняйтесь от нее только при наличии определенной причины.
В производственной или производственной среде вы должны запускать рабочих из сельдерея из командной строки, используя celery multi и менеджера процессов по вашему выбору, например systemd или supervisord.
celery multi
systemd
supervisord
Как и во всем остальном, начните с самого простого решения (здесь - используйте модель параллелизма по умолчанию - prefork) и, если вы обнаружите, что оно не подходит, попробуйте что-нибудь другое. Принцип поцелуя.
prefork