Найти - Пользователи
Полная версия: паралельная обработка и отсылка с задержкой
Начало » Python для новичков » паралельная обработка и отсылка с задержкой
1
habrman
есть цикл, в цикле программа получает данные, допустим из сокета, задержек нету
я хочу каждую порцию данных отсылать с задержкой
код примерно такой
 while true:
  email=get_email();
  send(email)
def send(data) :
  sleep(20)
  sending()
но в таком случает главный цикл будет тоже ждать 20 секунд
а я хочу чтобы главный цикл работал постоянно, email например добавлялся в очередь, и затем с задержкой делалась отсылка
как лучше реализовать?
marvellik
Параллельный процесс вам наверно поможет.
создаете функцию отправки которую запускаете параллельно и берете данные из списка а в основном цикле собираете данные в список. примерно так. таймер специально маленький что бы визуально видно было работу
 from threading import Thread
import time
def sending():
    
    while True:
        if data:
            time.sleep(0.1)
            res = chr(data.pop(0))   
            print(f'типа отправка данных >>>>>>> {res}\n')                 
    
data = []
thread = Thread(target=sending)
thread.start()
for i in range(1,100000):
    print(f'типа входные данные >> {i}')
    data.append(i)
thread.join()
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