1
私は非同期要求を送信するためにhttpclient.HTTPRequestライブラリを使用していますが、要求間に遅延を追加する必要があります。 これは、RPS(Requests per second)= 5を設定することを意味します。各要求応答を待たずに要求を非同期的に送信するにはどうすればよいですか。遅延を伴うHTTPクライアント非同期呼び出し
これは私のコードです:
def process_campaign(self, campaign_instance):
ioloop.IOLoop.current().run_sync(lambda: start_campaign(campaign_instance))
@gen.coroutine
def start_campaign(campaign_instance):
...
while True:
try:
log.info("start_campaign() Requests in Queue: {}".format(len(web_requests)))
web_request = web_requests.pop()
time.sleep(delay)
headers = {'Content-Type': 'application/json'}
request = httpclient.HTTPRequest(auth_username=settings.api_account,
auth_password=settings.api_password,
url=settings.api_url,
body=json.dumps(web_request),
headers=headers,
request_timeout=15,
method="POST")
response = yield http_client.fetch(request)
except httpclient.HTTPError, e:
log.exception("start_campaign() " + str(e))
except IndexError:
log.info('start_campaign() Campaign web requests completed. Errors {}'.format(api_errors))
break
しかし、先に進む前に、HTTPの応答を待つように思われます。
を? – californian