Завершение request.post в середине соединения при использовании многопроцессорной обработки - PullRequest
0 голосов
/ 17 января 2019

Прямо сейчас логика такова:

Multiprocess request.posts, пока мы не получим требуемый ответ Установить событие для остановки и завершения процессов

НО, запросы, которые были выполнены до завершения, все еще заканчивают свою работу, что я не могу себе позволить. Мне нужно, чтобы они остановились ровно на секунду, когда мое состояние закончилось. Я даже могу позволить себе убить сетевой адаптер для скрипта на секунду, если это то, что нужно. Мне просто нужно встать на правильный путь

Это в Windows, Запуск Python 2.7, Многопроцессорная обработка и запросы libs

Есть ли какой-нибудь способ прекратить соединения модуля Requests в середине запросов? (Нужно остановить все они на разных процессах)

Например:

def worker(found_event):
    print 'process started'
    randDelay = random.randint(4, 10)
    response = requests.post('http://httpbin.org/delay'+str(randDelay))
    print response.status_code
    found_event.set()


if __name__ == "__main__":

    found_event = Event()

    pool = [Process(target=worker, args=(found_event,)) for i in range(10)]

    for p in pool:
        p.start()

    found_event.wait()
    for p in pool:
        p.terminate()
    for p in pool:
        p.join()

Иногда возвращает:

process started
process started
process started
process started
process started
process started
process started
process started
process started
process started
404

Иногда:

process started
process started
process started
process started
process started
process started
process started
process started
process started
process started
404404
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...