TThreadPoolServer 的示例用法

Sample usage of TThreadPoolServer

我正在尝试将使用 TThreadedServer 的应用程序移植到 TThreadPoolServer。我目前正在这样使用 class:

TThreadPoolServer server(
      processor),
      server_transport,
      transport_factory,
      protocol_factory);

  server.serve()

客户端尝试连接时出现以下异常:

terminate called after throwing an instance of 'apache::thrift::concurrency::IllegalStateException' what(): ThreadManager::Impl::add ThreadManager not started

我看到 ThreadManager 实例正在 TThreadPoolServer here. If a ThreadManager object has to be passed to the constructor of TThreadPoolServer, I am not sure why the constructor creates a ThreadManager object. I tried to create a ThreadManger object and call the start() method as given here 的构造函数中创建,但 PosixThreadFactory 不再是 Thrift 框架的一部分。我是否必须实施 ThreadFactory 摘要 class?能否请您提供示例用法来帮助我解决这个问题?

我个人认为 Thrift TestServer and TestClient 是非常好的入门资源。它们概述了广泛的可能选项,包括不同的服务器类型。如果您从源代码构建,您可以从命令行 运行 服务器和客户端。这使得在自己实施之前测试特定场景变得相当容易。

对于 TThreadPoolServer,您可以在 the TThreadPoolServer creation 之后的行中找到相关部分。这应该会显示使用基本参数设置 TThreadPoolServer 所需的所有步骤。

有帮助吗?