我需要編寫一個適用於2.7和3.x的包。該包需要具有以異步方式發送發佈請求的方法。這可能嗎?我嘗試使用request-futures,但是當我嘗試做出多個請求時出現錯誤。我也嘗試了grequests,但我甚至無法提出請求。如何編寫具有異步方法的程序包?
這將是這個樣子:
my_package.py
def _make_request(payload):
requests.post(
SERVICE_URL,
data=json.dumps(payload),
)
def do_thing_a():
_make_request(some_payload)
def do_thing_b():
_make_request(some_other_payload)
code_that_uses_my_package.py
do_thing_a()
do_thing_b()
如果我使用請求同步能正常工作。如果我使用請求 - 期貨,並且將 session = FuturesSession()
行添加到每個方法並將requests.post更改爲session.post,則會出現此錯誤。
TypeError: 'NoneType' object is not callable
<async at 0x3f657f0> failed with TypeError
如果我只做一個異步調用,但它確實工作。 如果我嘗試使用grequests並使用grequests.post + greqeuests.send,則不會發生任何事情。
我做錯了什麼?有沒有更好的圖書館來做到這一點?
Woiuld像[Twisted](https://twistedmatrix.com/trac/)的幫助? – tadman