如何在python

时间:2018-05-01 11:29:19

标签: python-3.x rabbitmq python-asyncio asynccallback

我有以下情况 我有3个服务JobInitiatorMediatorExecutor以下列方式与对方交谈。

  • 每隔X分钟JobInitiator一次发布到队列(RabbitMQ)请求的工作
  • 每隔Y分钟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()都执行上述过程。

0 个答案:

没有答案