Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python oauth2client异步_Python_Asynchronous_Tornado_Oauth2client_Google Cloud Python - Fatal编程技术网

Python oauth2client异步

Python oauth2client异步,python,asynchronous,tornado,oauth2client,google-cloud-python,Python,Asynchronous,Tornado,Oauth2client,Google Cloud Python,我正在与龙卷风和官方pythonoauth2client,gcloud作战。。。模块 这些模块接受用http=传递的备用http客户端,只要它有一个名为request的方法,这些库中的任何一个都可以调用该方法,只要http请求必须发送到google和/或使用刷新令牌更新访问令牌 我创建了一个简单的类,它有一个self.client=AsyncHttpClient() 然后在其request方法中,返回self.client.fetch(…) 我的目标是能够产生这些库调用中的任何一个,这样torn

我正在与龙卷风和官方pythonoauth2clientgcloud作战。。。模块

这些模块接受用http=传递的备用http客户端,只要它有一个名为
request
的方法,这些库中的任何一个都可以调用该方法,只要http请求必须发送到google和/或使用刷新令牌更新访问令牌

我创建了一个简单的类,它有一个
self.client=AsyncHttpClient()
然后在其
request
方法中,返回
self.client.fetch(…)

我的目标是能够
产生这些库调用中的任何一个,这样tornado将在中异步执行它们

问题是,它们高度依赖于设置为httplib2.Http()的默认客户端返回的内容:(响应,内容)

我真的被卡住了,找不到一个干净的方法使它异步

如果有人已经找到了方法,请帮助


提前感谢

这些库不支持异步。移植过程并不总是容易的

oauth2client

取决于你想做什么,也许就足够了

gcloud

由于我不知道有任何Tornado/asyncio实现
gcloud python
,因此您可以:

  • 你可以自己写。同样,这不是简单的
    连接的传输更改。http
    请求
    ,所有周围的东西都必须能够使用/产生未来/协同路由

  • 将其包装在
    ThreadPoolExecutor
    (如@Apero所述)。这是一个高级API,因此该成品中的任何嵌套API调用都将在同一线程中执行(不使用池)。它可以很好地工作

  • 外部应用程序(带有
    ProcessPoolExecutor
    Popen


几年前,当我遇到AWS的类似问题时,我最终使用普通AsyncHTTPClient异步执行CLI(+一些CLI(基于awscli或boto))和简单案例(如S3,基本EC2操作)。

这些库不支持异步。移植过程并不总是容易的

oauth2client

取决于你想做什么,也许就足够了

gcloud

由于我不知道有任何Tornado/asyncio实现
gcloud python
,因此您可以:

  • 你可以自己写。同样,这不是简单的
    连接的传输更改。http
    请求
    ,所有周围的东西都必须能够使用/产生未来/协同路由

  • 将其包装在
    ThreadPoolExecutor
    (如@Apero所述)。这是一个高级API,因此该成品中的任何嵌套API调用都将在同一线程中执行(不使用池)。它可以很好地工作

  • 外部应用程序(带有
    ProcessPoolExecutor
    Popen


几年前,当我遇到AWS的类似问题时,我最终以异步执行CLI(+一些CLI(基于awscli或boto))和简单案例(如S3,基本EC2操作)而告终使用纯AsyncHTTPClient。

我已经成功地实现了反身份验证处理程序,并且正在将令牌存储到我的数据库中,并且正在设置一些安全cookie以了解用户是谁以及他的会话是否有效。我现在的问题是不必编写自己的异步方法来访问谷歌商店、谷歌驱动器、日历、电子邮件。。。但是,我已经成功地实现了反身份验证处理程序,并将令牌存储到了我的数据库中,并且设置了一些安全cookie,以了解用户是谁以及他的会话是否有效。我现在的问题是不必编写自己的异步方法来访问谷歌商店、谷歌驱动器、日历、电子邮件。。。但是有点黑客这些官方libs中真正阻止(http请求)的部分,我刚刚发现了这篇文章,也许我可以实现这一点:或者对libs进行一些猴子补丁,但我宁愿不要,我已经编辑了你的答案。当然你是对的,ThreadPoolExecutor是一个选项,它并不耗时,在高流量服务上扩展可能有点困难。我刚刚找到这篇文章,也许我可以实现这一点:或者对libs进行一些猴子补丁,但我宁愿不要我已经编辑了你的答案。当然,您是对的,ThreadPoolExecutor是一个选项,它并不耗时,在高流量服务上可能更难扩展。