- 已关闭**。此问题为opinion-based。当前不接受答案。
- 想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。
14小时前关门了。
Improve this question
我使用的API有大约30个端点,并且我设置了向每个端点发送请求的频率。对于某些端点,这是几秒钟,有些是几小时。我想实现调用每个API端点的python应用程序(并且执行一些代码),其中N对于每个端点可以不同。如果当第二个呼叫开始时一个呼叫仍在进行中,则应该将该请求添加到队列(或类似的东西)中,并在第一个请求完成之后执行。
用python实现这个的正确方法是什么?
我对RabbitMQ有一些经验,但我认为对于这个问题来说,那可能是矫枉过正。
2条答案
按热度按时间ibps3vxo1#
你说 “在第一个程序完成后执行”,所以它是一个单线程程序。
只需使用
def()
创建一些函数,然后逐一执行即可。例如
igetnqfo2#
您可以通过以下方式构建代码:
1.存储每种查询类型的URL、方法和参数。字典会很好:{“查询1”:{“网址”:“/a”,“方法”:“GET”,“参数”:无},“查询2”:{“url”:“/B”,“method”:“GET”,“parameters”:“c”}}但是你可以用任何你想要的方式来做这件事,如果需要的话包括一个数据库。
1.在某处存储查询类型和间隔之间的关系。同样,你可以用case语句,或者用dict(可能和你以前用的一样),或者数据库中的间隔列来实现这一点。
1.每隔N秒,将相应的查询条目推送到队列(queue.put)
当然,如果您的代码要跨多个节点分布以实现可伸缩性或高可用性,那么您将需要一个分布式队列,如RabbitMQ、Ray或类似队列。