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