Любая точка, чтобы использовать greenthreads, если у вас есть одна функция блокировки

Зеленые потоки в Python имеют совместную многозадачность для завершения работы. Должны ли они использоваться для следующего сценария, потому что они не будут передавать / передавать управление другим потокам для него.

Сценарий:

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

Там будет установка через этот SSH на машине

2 ответа

Запуск SSH с использованием paramiko или другая библиотека Python является сокетом IO, используя subprocess также является файловым дескриптором IO, в обоих случаях он будет передавать управление другим потокам.

Вам нужно использовать eventlet.monkey_patch или же eventlet.green.subprocess чтобы сделать этот контроль выхода SSH.

Вам не нужны зеленые потоки / потоки ОС в простой программе, подобной этой:

import os
os.system('ssh host command')

Ну, это зависит от того, может ли ваша блокирующая функция использовать зеленый (не блокирующий) вызов ssh. Есть "зеленая" библиотека, которая также является кабиной ssh https://pypi.python.org/pypi/telnetsrv/0.4

Другие вопросы по тегам