Уведомления

Группа в Telegram: @pythonsu

#1 Июль 7, 2019 14:51:12

habrman
Зарегистрирован: 2019-07-01
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

паралельная обработка и отсылка с задержкой

есть цикл, в цикле программа получает данные, допустим из сокета, задержек нету
я хочу каждую порцию данных отсылать с задержкой
код примерно такой

 while true:
  email=get_email();
  send(email)
def send(data) :
  sleep(20)
  sending()
но в таком случает главный цикл будет тоже ждать 20 секунд
а я хочу чтобы главный цикл работал постоянно, email например добавлялся в очередь, и затем с задержкой делалась отсылка
как лучше реализовать?

Офлайн

#2 Июль 7, 2019 16:20:09

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

паралельная обработка и отсылка с задержкой

Параллельный процесс вам наверно поможет.
создаете функцию отправки которую запускаете параллельно и берете данные из списка а в основном цикле собираете данные в список. примерно так. таймер специально маленький что бы визуально видно было работу

 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()

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version