C++启动一次,监听节点输入设计问题

C++ startup once, listen node input design issue

我构建了一个按顺序执行以下工作流的 cpp 程序:

Read serialized data (0.3 ms)
Receive search metadata (0.00.. ms)
Search data (0.01 ms)
Return search data(0.00.. ms)

现在,我 运行 使用 nodejs shell 执行程序并使用 express api 为它提供服务。 api 没有多少用户使用,因此读取数据将只执行一次。但是一个用户会对同一数据进行 20 次查询。所以现在,对相同的数据执行了 20 次读取。

显然读取数据占用了大部分时间。此外,正在读取的数据永远不会改变。为了加快工作流程,我想读取一次数据,然后等待请求。就像一个 MySQL db,它正在等待语句。

你会采用什么方法来做到这一点?

  1. 我应该构建一个套接字服务器吗? (感觉矫枉过正)
  2. 我应该尝试 运行 后台程序,存储 pid 并使用 nodejs shell exec 解决方案吗? (感觉很老套)

我想我漏掉了正确的术语。如果你能把我推向正确的方向那就太棒了!

You may call C++ directly from nodejs 这应该可以节省您执行 shell 或构建套接字服务器的开销。

例如: int Feed(const char* searchMetadata) 如果要在 C++ 部分中保存多个元数据,其中 returns 数据的键。

然后调用const char* search(int dataKey, const char* searchingKeyword)搜索元数据。然后根据需要多次调用 search()。

将数据缓存为 C++ 文件也是可行的。但是你认为 0.3ms 是一个开销,那么最好避免文件 open/save.