我有以下情况
我有3个服务JobInitiator
,Mediator
,Executor
以下列方式与对方交谈。
JobInitiator
一次发布到队列(RabbitMQ)请求的工作Executor
服务向Mediator
服务发送一个REST API调用,并询问是否有任何工作要完成。如果是这样 - Mediator
从队列中提取消息并将消息返回给响应中的Executor
服务。 Executor
完成作业后,他将作业结果发布到Mediator
服务中的API,该API将其发布到JobInitiator
侦听的队列。附注+限制和限制:
Mediator
服务只是我队列的REST API包装器。主要问题是无法公开访问Executor
服务 - 只允许传出api调用。JobInitiator
连接到Executor
服务到目前为止 - 这个过程并没有什么特别之处。我想知道的是,如果它可以用python中的asyncio写这个,所以我不会处理回调地狱。像这样的东西(伪代码)
class JobInitiator(object):
def do_job():
token = await get_token()
applicative_results = await get_results(token=token)
其中get_token()
和get_results()
都执行上述过程。