为什么我们不能在父进程中初始化cassandra会话到子进程(python驱动程序)?

时间:2016-11-19 11:12:14

标签: python-2.7 session cassandra multiprocessing

我正在开发一个多进程应用程序并使用cassandra,我在服务器开始时打开了一个会话,我想将会话分享给其他进程。我只想知道它是否可能在cassandra(python)司机)。如果不是为什么?

2 个答案:

答案 0 :(得分:1)

是的,可以并建议使用一个会话
使用Cassandra的DataStax驱动程序时的4个简单规则

当使用Cassandra的DataStax驱动程序之一时,无论是C#,Python还是Java,都有4个简单的规则可以清除大部分问题并且还可以提高代码效率:

  1. 每个(物理)群集使用一个群集实例(每个应用程序生命周期)
  2. 每个键空间最多使用一个会话,或使用单个会话并在查询中明确指定键空间
  3. 如果多次执行语句,请考虑使用PreparedStatement
  4. 您可以减少网络往返次数,也可以使用批次
  5. 进行原子操作

    来源http://www.datastax.com/dev/blog/4-simple-rules-when-using-the-datastax-drivers-for-cassandra

答案 1 :(得分:1)

不,不推荐。

引用官方datastax文档:

  

确保永远不要跨多个进程共享任何Cluster,Session或ResponseFuture对象。这些对象应该在分支过程之后创建,而不是之前。

来源:https://datastax.github.io/python-driver/performance.html#multiprocessing