gpt4 book ai didi

python - 处理必须协调任务的工作进程的 pythonic 方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 17:34:35 25 4
gpt4 key购买 nike

我目前正在学习 Python(具有 Java 背景),我对一些我会在 Java 中使用线程的事情有疑问。

我的程序将使用 worker 定期从一些网络服务中读取一些数据。每个工作人员将定期在不同时间调用网络服务。

根据我的阅读,最好使用 multiprocessing 模块并将工作程序设置为独立进程,以继续执行数据收集任务。在 Java 上,我会做一些概念上类似的事情,但使用线程。虽然看起来我可以在 Python 中使用线程,但我会失去对多 CPU 的利用。

这是我的问题的核心:Web 服务受到限制,即,工作人员每秒调用它的次数不得超过 x 次。工作人员检查他们是否可以请求数据的最佳方式是什么?

我很困惑是否应该使用:

  • 管道作为与其他“管理对象”通信的一种方式,它监控每秒的总调用数。
  • 类似于 nmap 的内容,用于在描述它们是否可以调用网络服务的进程之间共享一些数据/值。
  • 一个 Manager() 对象,用于监控每秒的调用次数并通知工作人员他们是否有权进行调用。

当然,我想这可能归结为我如何跟踪每秒的调用次数。我想一个选择是让工作人员调用某个其他对象上的函数,该函数调用 Web 服务并记录当前的调用次数/秒。另一种选择是让调用网络服务的函数存在于每个工作人员中,并让他们在每次调用网络服务时向管理对象发送消息。

欢迎思考!

最佳答案

将检索委托(delegate)给一个单独的进程,该进程将请求排队直到轮到他们。

关于python - 处理必须协调任务的工作进程的 pythonic 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com