相关疑难解决方法(0)

如何从python中的gRPC客户端关闭gRPC服务器?


我有一个 gRPC HelloWorld 服务器运行,如官方入门指南(https://grpc.io/docs/quickstart/python/)中所示。我现在想从客户端关闭/终止服务器,可能是通过调用服务器方法。
我知道这是可以做到的,因为我阅读了这篇关于如何在 C++ 中做到这一点的文章。如何从客户端关闭 gRPC 服务器(使用 RPC 功能)

我的编程语言是客户端和服务器的python。任何帮助都感激不尽。

python grpc grpc-python

3
推荐指数
1
解决办法
2555
查看次数

是否可以在信号处理程序中设置承诺?

我正在寻找一种方法来停止每 2 秒执行一次任务的线程。我决定尝试使用 std::promise/future 以便在设置承诺时线程可以立即退出。

#include <future>
#include <iostream>
#include <chrono>
#include <csignal>

std::promise<void> stop;

int main() {

    std::signal(SIGINT, [] (int)  { stop.set_value(); } );

    auto future = stop.get_future();

    while (future.wait_for(std::chrono::seconds(1)) != std::future_status::ready) {
            std::cout << "I'm still there" << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

实际上这不起作用并以这种方式崩溃:

$ ./a.out 我还在那里 ^Cterminate 在抛出一个 'std::system_error'
what()实例后被调用:未知错误 -1 放弃(核心转储)

好的,一个人应该注意他在处理程序上下文中所做的事情,但我必须说我没有预料到这次崩溃;我真的不明白……你有什么想法吗?

c++ signal-handling promise c++11

2
推荐指数
1
解决办法
628
查看次数

标签 统计

c++ ×1

c++11 ×1

grpc ×1

grpc-python ×1

promise ×1

python ×1

signal-handling ×1