小编典典

运行多个并发Python程序以访问同一数据库表

python

Python中是否有任何东西可以允许您运行多个并发的Python程序,这些程序可能访问同一数据库表,并防止每个程序使用完整的cpu,从而使服务器剩下一些额外的容量?


阅读 235

收藏
2021-01-20

共1个答案

小编典典

几个问题:

  1. 多个并发的Python程序-请参阅http://wiki.python.org/moin/Concurrency,首先,我将尝试使用内置模块multiprocessing(http://docs.python.org/2/library/multiprocessing.html
  2. 访问同一数据库表-每个进程应创建自己的数据库连接-在并发由rdbms和/或连接/查询选项管理/配置之后。如果您确实需要在进程之间进行同步,则可以使用Locks / Semaphores。
  3. 防止每个程序使用完整的cpu-这取决于您的进程应该做什么,我可以这样做:
    • 有一个始终运行的主程序(主进程),会暂停(time.sleep,gevent.sleep或类似程序),并产生并控制产生的进程(工人)
    • 产生的进程完成工作(工作人员)-打开新连接,执行数据库操作并退出

我确定多处理(或其他)模块提供的某些工作流程/系统可以满足您的需求(工作人员,池,队列,管道,共享状态,同步等)。

2021-01-20