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

时间:2013-05-09 19:54:03

标签: python concurrency

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

1 个答案:

答案 0 :(得分:0)

几个问题:

  1. 多个并发Python程序 - 请参阅http://wiki.python.org/moin/Concurrency,我将尝试使用内置模块多处理(http://docs.python.org/2/library/multiprocessing.html
  2. 访问相同的数据库表 - 每个进程应创建自己的数据库连接 - 之后并发由rdbms和/或连接/查询选项管理/或配置。如果你真的需要在进程之间同步 - 使用Locks / Semaphores可能有所帮助。
  3. 阻止每个程序使用完整的cpu - 这取决于你的进程应该做什么,我会选择:
    • 有一个主程序一直运行(主进程),暂停(time.sleep,gevent.sleep或类似)并生成和控制衍生进程(工作者)
    • 衍生进程完成工作(工作人员) - 打开新连接,执行数据库操作并退出
  4. 我确信多处理(或其他)模块提供的一些工作流程/系统可以满足您的需求(工作人员,池,队列,管道,共享状态,同步......)。