Flask Приложение с многопроцессорным произвольным соединением отклонено с мульти-запросом - PullRequest
0 голосов
/ 26 марта 2020

У меня есть API, написанный в flask, который сканирует данные с сайта, используя селен. при выполнении одного запроса он работает нормально. но, когда я делаю несколько запросов от моего локального, то дает ошибку соединения отказано для некоторых запросов.

app.py

app = Flask(__name__)

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5001, debug=False)

, когда я делаю запрос через flask сервер, он управляет 4 процессами многопроцессорности и соответственно дает ответ. когда я делаю только один запрос, он работает нормально и дает ответ от всех 4 процессов многопроцессорности. но когда я делаю несколько запросов одновременно, это выдает ошибку connection refused для некоторых случайных процессов. и я не получаю ответ от всех 4 процессов.

def multiprocess_method():
    manager = multiprocessing.Manager()

    # result return dict of al  process
    return_dict = manager.dict()
    log_obj_dict = manager.dict()

    # start first process of combination false, false
    p1 = Process(target=crawl,args=(return_dict,log_obj_dict))
    p1.start()
    time.sleep(0.1)

    # start second process of combination false, true
    p2 = Process(target=crawl,args=(return_dict,log_obj_dict))
    p2.start()
    time.sleep(0.1)

    # start third process of combination true, true
    p3 = Process(target=crawl,args=(return_dict,log_obj_dict))
    p3.start()
    time.sleep(0.1)

    # start fourth process of combination true, false
    p4 = Process(target=crawl,args=(return_dict,log_obj_dict))
    p4.start()
    time.sleep(0.1)

    process_list = [p1,p2,p3,p4]

    while True:
        time.sleep(0.01)
        if not any(process.is_alive() for process in process_list):
            for process in process_list:
                process.join()
            return return_dict, log_obj_dict

здесь, crawl метод, который является целью многопроцессорности, которая выполняет некоторые действия. моя проблема в том, что когда я делаю несколько запросов одновременно, это выдает ошибку типа connection refused, в противном случае только для одного запроса за раз это работает хорошо.

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