Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 2, 2023 17:48:56

gelius
Зарегистрирован: 2013-03-18
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

определенное количество одновременно запущенных процессов

Такой код запускает 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()
Необходимо после завершения одного из процессов запускать новый, поддерживая заданное количество процессов..

Офлайн

#2 Фев. 3, 2023 01:19:02

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

определенное количество одновременно запущенных процессов

Сделай один контролирующий процесс и регистрируй в нём запускающиеся процессы. Он же и проверяет их количество в цикле и выполняет дозапуски.



Офлайн

#3 Фев. 3, 2023 10:07:18

gelius
Зарегистрирован: 2013-03-18
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

определенное количество одновременно запущенных процессов

py.user.next
Сделай один контролирующий процесс и регистрируй в нём запускающиеся процессы. Он же и проверяет их количество в цикле и выполняет дозапуски.
Есть пример такого кода?
Еще варианты?

Офлайн

#4 Фев. 3, 2023 12:26:33

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2739
Репутация: +  183  -
Профиль   Отправить e-mail  

определенное количество одновременно запущенных процессов

Первая счылка в гугле. https://docs-python.ru/standart-library/modul-threading-python/poluchenie-obschih-svedenij-potokah-modul-threading/



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Фев. 3, 2023 16:21:04

gelius
Зарегистрирован: 2013-03-18
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

определенное количество одновременно запущенных процессов

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?

Отредактировано gelius (Фев. 5, 2023 10:24:14)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version