Я пытался подключиться к большому количеству (где-то из тысяч) потоковых конечных точек http одновременно, используя мультиобъект pycurl. Кажется, это работает нормально, когда у меня небольшое количество потоков, однако, когда я пытаюсь подключить большее количество конечных точек, возникает большая задержка во времени установки, и иногда кажется, что конечные точки не читаются во всем сообщении. Все конечные точки отправляют объект json каждые 5 секунд, который мне затем нужно обработать. Мой текущий код выглядит так, когда некоторые имена переменных меняются более обобщенно c.
m = pycurl.CurlMulti()
for connection_num in range(1, num_connections):
conn = pycurl.Curl()
conn_fuel.setopt(pycurl.URL, 'url/{}'.format(connection_num))
conn_fuel.setopt(pycurl.WRITEFUNCTION, on_receive_foo)
m.add_handle(conn)
while 1:
ret, num_handles = m.perform()
time.sleep(0.1)
Я попытался установить MAX_CONCURRENT_STREAMS, используя setopt, как это в случае проблемы, но это возвращает ошибку, в которой говорится, что атрибут не существует.
m.setopt(pycurl.M_MAX_CONCURRENT_STREAMS, 6000)
Есть ли более быстрый или лучший способ получения соединений с мультиобъектом Pycurl или я трачу свое время и должен искать что-то еще?
Я все еще очень плохо знаком с соединениями и особенно плохо знаком с потоковой передачей и т.п., поэтому извините, если есть очевидный ответ.