1
我做了一个快速谷歌,并没有能够找到任何权威性的声明。基本上,我正在尝试从SQS中读取事件并对其进行处理,并且预计asio将由greenlet处理。boto3是否支持greenlet?
那么boto3的粒度可以在greenlet中使用吗?我是否需要每个greenlet的会话/客户端?我需要额外的互斥吗?
我做了一个快速谷歌,并没有能够找到任何权威性的声明。基本上,我正在尝试从SQS中读取事件并对其进行处理,并且预计asio将由greenlet处理。boto3是否支持greenlet?
那么boto3的粒度可以在greenlet中使用吗?我是否需要每个greenlet的会话/客户端?我需要额外的互斥吗?
Boto3不,但你可以猴补丁botocore。
在你的模块,你会总是需要猴补丁第一,之后使用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'))
你对此有什么信息? – vks
@vks迄今没有。 – xis