Cassandra连接池在fork中不起作用 - C ++

时间:2018-06-15 19:50:18

标签: c++ cassandra

我们有一个进行数据处理的C ++ Web服务,而DB是Cassandra。

Web服务读取请求并分叉子进程并执行操作。

我们需要集合Cassandra连接和cassandra文档说,如果会话,集群和密钥空间相同,驱动程序可以汇集连接。

为此,我们在服务启动之前创建了连接,并在分叉子项中使用它。但是,在fork中,连接没有响应。

代码剪断是这样的:

void Service_Ready_Handler()
{
    // Do the DB connection here
    connectCassandra();
}
void ServiceHandler(session, request)
{
    // fork the child and do the process
    if ( fork() == 0 ) // child
    {
         // fetch the data from DB for the request
         // do the additional process
         // prepare the response and write to parent
    }

    // if the child is done, send the response
}

然而,连接工作正常,但是"取出"数据部分悬空,根本没有提供任何信息。 我们不能通过Cassandra连接(会话和集群)吗? 为Cassandra汇集连接的另一个选项是什么?

提前感谢您的支持。

谢谢,

0 个答案:

没有答案