【问题标题】:What is the proper way to have an asychronous python script wait for a response from a server?让异步 python 脚本等待服务器响应的正确方法是什么?
【发布时间】:2019-04-04 08:59:25
【问题描述】:

我目前有一个程序可以处理大量数据,在此过程中的某个时刻,它会将数据发送到服务器以完成更多工作,然后我的程序会定期查找完成的数据,如果它没有准备好并重复,直到它获取数据,然后继续在本地工作。

无需重复轮询直到外部服务器完成,它能够在工作完成后向我指定的地址发送一个简单的 http post。

所以我假设我需要在可以接收通知的地址上运行烧瓶,但我不确定将烧瓶合并到原始程序中的最佳方法。我想把我的程序分成两部分。

part1.py

确实有效 --> 发送到外部服务器

第一部分结束

烧瓶服务器.py 接收数据 --> 使用接收到的数据生成 part2.py

原始程序使用多处理池来抵消等待服务器响应的时间,但是使用flask,我可以重复生成part2 的新实例来处理接收到的数据吗?

我这样做完全错了吗,我只是把它和一些谷歌搜索放在一起,感觉超出了我的深度

【问题讨论】:

    标签: python asynchronous flask


    【解决方案1】:

    你可以使用带有消息队列的代理。芹菜 + Redis 或 RabbitMQ。然后,当另一台服务器完成与数据有关的任何事情时,它可以产生一个事件,第一台服务器将收到一个通知。

    【讨论】:

    • 我编辑了我的问题,因为我认为它不清楚,外部服务器只能向某些 url 发送 http 帖子,所以我认为我不能使用这些解决方案吗?
    • 是的,你不能。但是你可以做的,就是将 Flask 添加到原始程序中,丢弃多处理池并改用 asyncio。外部服务器完成工作后,它应该向原始服务器发送 POST 请求,并且 Flask 处理程序应该使用 asyncio(再次)恢复原始进程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2020-11-06
    • 2020-08-01
    • 2023-01-26
    • 2015-05-26
    • 1970-01-01
    相关资源
    最近更新 更多