Python 如何在google cloud run上使用shared gunicorn异步处理多个请求?

Python 如何在google cloud run上使用shared gunicorn异步处理多个请求?,python,asynchronous,gunicorn,google-cloud-run,Python,Asynchronous,Gunicorn,Google Cloud Run,我正在尝试构建一个web服务来处理来自多个客户端的请求。更具体地说,当客户机向我的服务器发送请求时,我将使用他/她的凭据启动交互式代理api,然后相应地进行交易。在我们的服务上进行的交易只在指定的时间发生,因此大多数请求都在1小时的间隔内(我的云运行的持续时间是1小时)。现在我需要一个类来跟踪这些用户即将发出的请求,这样我就可以在预热前获得他们的ibapi。简化的体系结构如下所示: import falcon from app.ib_factory import IBFactory api =

我正在尝试构建一个web服务来处理来自多个客户端的请求。更具体地说,当客户机向我的服务器发送请求时,我将使用他/她的凭据启动交互式代理api,然后相应地进行交易。在我们的服务上进行的交易只在指定的时间发生,因此大多数请求都在1小时的间隔内(我的云运行的持续时间是1小时)。现在我需要一个类来跟踪这些用户即将发出的请求,这样我就可以在预热前获得他们的ibapi。简化的体系结构如下所示:

import falcon
from app.ib_factory import IBFactory

api = application = falcon.API()
ibfactory = IBFactory()
上述代码位于app.py的

class IB_Factory():
    def __init__(self):
        self.active_ib = {}

    async def create_ib(self, user_id, user_credentials):
        if user_id not in self.active_ib:
            self.active_ib[user_id] = CREATE_IB(user_credentials)
        return self.active_ib[user_id]

    async def create_ib_async(self, user_id, user_credentials):
        await self.create_ib(self, user_id, user_credentials)
我有另一个脚本来处理post请求:

import app.ibfactory as ibfactory
import asyncio

def on_post(self, req, resp):
    ## Extract credentials from request
    data_pubsub = json.loads(json.loads(req.stream.read()))
    user_credentials = data_pubsub["credentials"]
    user_id = data_pubsub["user_id"]

    ## Asynchronous code starts here
    asyncio.set_event_loop(asyncio.new_event_loop())
    loop = asyncio.get_event_loop()
    ib_api = loop.run_until_complete(ibfactory.create_ib_async(user_id, user_credentials))

    ## Tradings Below using ib_api
为了共享全局变量
active_ib
,我需要将
gunicorn
设置为
--preload
。但是,如果没有
async
,所有请求都是同步完成的,第二个用户必须等待第一个用户完成所有操作才能开始,这是非常低效的。现在使用
async
,我不断收到这个错误
,这个事件循环已经在运行了

你知道我怎么修吗

谢谢