boto3支持greenlets吗?

时间:2016-11-30 01:57:29

标签: boto3 greenlets

我做了一个快速谷歌,但无法找到任何明确的陈述。基本上,我试图从SQS读取事件并处理它们,而asio预计将由greenlets处理。

那么boto3的粒度可以用于greenlet吗?我是否需要每个greenlet会话/客户端?我需要额外的互斥吗?

2 个答案:

答案 0 :(得分:0)

Boto3没有,但你可以修补僵尸。

在模块的顶部,你总是需要先修补补丁,然后再使用botocore会话,例如:

from gevent import monkey
monkey.patch_all()

import botocore.session


def fetch_file(bucket, key):
    session = botocore.session.get_session()
    client = session.create_client('S3')
    return client.get_object(
       Bucket=bucket, 
       Key=key
      )

  result = gevent.spawn(fetch_file('mybucket', 'sd.txt'))

答案 1 :(得分:0)

gevent Monkey补丁程序会自动修补所有下面的套接字调用,只要botocore使用这些套接字调用即可。 boto3确实使用了botocore。