Найти - Пользователи
Полная версия: определенное количество одновременно запущенных процессов
Начало » Python для экспертов » определенное количество одновременно запущенных процессов
1
gelius
Такой код запускает 32 пинг завершающихся в разное время,
 import random
import subprocess
from threading import Thread
results = []
start_processes = 32
def run_command(count, result_storage):
    cmd = str(subprocess.check_output(['ping', '-c', f'{body}', 'google.' + 'com'], text=True))
    result_storage.append(cmd)
threads = []
for _ in range(start_processes):
    ch = random.choices('1234567890', k=2)
    body = (''.join(ch))
    print(body)
    t = Thread(target=run_command, args=[body, results])
    t.start()
    threads.append(t)
for t in threads:
    t.join()
Необходимо после завершения одного из процессов запускать новый, поддерживая заданное количество процессов..
py.user.next
Сделай один контролирующий процесс и регистрируй в нём запускающиеся процессы. Он же и проверяет их количество в цикле и выполняет дозапуски.
gelius
py.user.next
Сделай один контролирующий процесс и регистрируй в нём запускающиеся процессы. Он же и проверяет их количество в цикле и выполняет дозапуски.
Есть пример такого кода?
Еще варианты?
Rodegast
Первая счылка в гугле. https://docs-python.ru/standart-library/modul-threading-python/poluchenie-obschih-svedenij-potokah-modul-threading/
gelius
Rodegast
Первая счылка в гугле. https://docs-python.ru/standart-library/modul-threading-python/poluchenie-obschih-svedenij-potokah-modul-threading/
Но не понятен, код такой 12 едениц пишет в консоль:
 import threading, time
def worker(firefox):
    time, sleep(3)
for _ in range(12):
    thread = threading.Thread(target=worker)
    thread = threading.active_count()
    n_thread = threading.active_count()
    print (n_thread)
Такой скрипт выполняется и виден в диспетчере задач до завершения последнего пинг:
 import random
import subprocess
from threading import Thread
results = []
start_processes = 32
def run_command(count, result_storage):
    cmd = str(subprocess.check_output(['ping', '-c', f'{body}', 'google.' + 'com'], text=True))
    result_storage.append(cmd)
threads = []
for _ in range(start_processes):
    ch = random.choices('1234567890', k=2)
    body = (''.join(ch))
    print(body)
    t = Thread(target=run_command, args=[body, results])
    t.start()
    threads.append(t)
for t in threads:
    t.join()
Может быть для python subprocess есть функционал подобный cron?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB