Удаленные работники на нескольких серверах с python -rq (redis) - PullRequest
0 голосов
/ 17 февраля 2020

Я использую redis и python-rq для управления задачей обработки данных. Я бы хотел sh распределить обработку данных по нескольким серверам (каждый сервер мог бы управлять несколькими рабочими RQ), но я хотел бы сохранить уникальную очередь на главном сервере.

Есть ли способ добиться этого, используя python-rq?

Спасибо.

1 Ответ

0 голосов
/ 17 февраля 2020

Получилось достаточно легко. Есть два шага:

1) Сконфигурируйте Redis на главном компьютере так, чтобы он был открыт для внешних коммуникаций удаленным сервером-агентом. Это делается путем редактирования информации bind, как объяснено в этом посте . Обязательно установите пароль, если для значения привязки установлено значение 0.0.0.0, так как это откроет соединение Redis с кем-либо.

2) Запустите работника на удаленном "агентском" сервере, используя параметр url:

rq worker --url redis://:[your_master_redis_password]@[your_master_server_IP_address]

На главном сервере вы можете проверить правильность установки соединения, набрав:

rq info --url redis://:[your_master_redis_password]@localhost

Если вы включили привязку localhost, на ней должны отображаться все рабочие, доступные для Redis от вашего «мастера», включая нового работника, которого вы создали на удаленном сервере.

...