Запуск нескольких процессов в одном рабочем celery на компьютере с одним процессором

#python #celery

#python #сельдерей

Вопрос:

Я изучаю сельдерей в качестве фонового рабочего для моего приложения flask. Приложение размещено на общем сервере Linux (я не очень уверен, что это значит) на платформе Linode. В описании сказано, что сервер имеет 1 процессор и 2 ГБ оперативной памяти. Я читал, что работник сельдерея запускает рабочие процессы под ним, и их количество равно количеству ядер на машине, что в моем случае равно 1.

У меня были бы ситуации, когда у меня были бы пользователи, запрашивающие выполнение нескольких фоновых заданий. Все они будут помещены в очередь redis / rabbitmq (еще не решено). Итак, если я начну Celery с параллелизмом, превышающим 1 (скажем --concurrency 4 ), то будет ли от этого какая-то польза? Или другие работники будут бесполезны в этом случае, так как у меня один процессор?

Задачи в основном будут заключаться в чтении информации в Google Sheets и базе данных приложений и из нее. Эти взаимодействия могут стать тяжелыми, иногда занимая около 5-15 минут. Исходя из этого, изменится ли ответ на приведенный выше вопрос, поскольку могут быть случаи, когда процессор не используется?

Любая помощь в этом будет очень кстати, так как я не хочу, чтобы одно задание продолжало ждать завершения предыдущего, прежде чем оно сможет начаться, или единственным решением будет заплатить деньги за лучшую машину?

Спасибо

Ответ №1:

Это обычный сценарий, так что не волнуйтесь. Если ваши задачи не перегружают процессор, вы всегда можете перегружать его так, как планируете. Если все, что они делают, это ввод-вывод, то вы можете выбрать даже большее число, чем 4, и все это будет работать просто отлично.

Комментарии:

1. Спасибо @DejanLekic. Я действительно попробовал это с помощью rq workers. Это простое планирование, когда моя 20-минутная работа занимает 60 секунд, когда у меня трое из них работают одновременно. Хотя примерная задача рассчитывалась до 1000000, поэтому я думаю, что это будет называться интенсивным использованием процессора, и поэтому я думаю, что со мной все будет в порядке в моем случае в основном операций ввода-вывода.