1
我正在開發一個通過https請求與服務器通信的應用程序。我需要一條消息在非常窄的時間窗口內擊中服務器。我知道這個時間窗口的開放時間只有半秒的精確度。我可以像前後那樣重複http請求,這並不重要。在特定時間發送Http請求
現在,這裏是我在做什麼:
- 我使用Python與請求和GEVENT模塊
- 我創建了一個請求會話,使用httpadapter與1000個連接
連接池我在時間窗口周圍1秒內發送儘可能多的訂單。
self.session = requests.Session() self.session.mount('https://', requests.adapters.HTTPAdapter(pool_connections=100, pool_maxsize=10000)) def sendRequest() self.session.post(self.url, self.body) pool = gevent.pool.Pool(size = 10000) while time.time() < endTime: g = pool.spawn(sendRequest) gevent.sleep(0.0000001)
不過,我一直失蹤的窗口,這是很窄的。我的代碼似乎只發送2毫秒的http請求,即使我增加池大小或 我試圖提高我發送消息的速度,以增加碰撞窗口的機會。但是,我不知道如何去做這件事。
我在想:
- 是網卡的瓶頸?
- python是瓶頸嗎?
- 我是否在我的代碼(https連接池的大小,使用gevent等)做了次優的事情
- 任何想法如何做到這一點呢?