我需要编写一个适用于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