“C++ 应用程序可以在完成时发出 python 脚本信号”吗?

Posted

技术标签:

【中文标题】“C++ 应用程序可以在完成时发出 python 脚本信号”吗?【英文标题】:Can a "C++ application signal python script on completion"? 【发布时间】:2014-10-16 20:39:21 【问题描述】:

我正在开发一个测试自动化框架。我需要从 python 脚本在远程 linux 主机上启动一个进程(一个 C++ 应用程序)。为此,我使用了 python 模块“paramiko”。但是,我的 c++ 应用程序需要一些时间来运行并完成分配给它的任务。因此,在应用程序完成处理之前,我无法关闭与 paramiko 客户端的连接。我想我是否可以做一些类似“c ++应用程序执行回调(或某种信号机制)并在任务完成时通知脚本”之类的事情有没有办法实现这一点? 我是 python 新手,所以任何帮助将不胜感激。 谢谢!

更新: c++ 应用程序和 python 脚本之间不能有 event.wait() 和 event.set() 机制吗?如果是,有人可以解释它是如何实现的吗? 提前致谢!

【问题讨论】:

我很好奇,为什么是引号? 您描述的方式也是我将如何实现它的方式;我会对此投赞成票,看看是否还有其他新颖的解决方案 【参考方案1】:

我能想到的最好方法是在 Web 服务器中同时运行它们。使用 C++ 的 Windows Web 服务或本机 CGI 实现之类的东西,并使用它来向 python 脚本发出信号。

如果这不可行,您可以使用 COM 在两侧创建 COM 对象,一个在 Python 中,一个在 C++ 中来处理您的 IPC,但这会因所有类型的编组等而变得混乱。

【讨论】:

更新:c++应用和python脚本之间不能有event.wait()和event.set()机制吗? 从技术上讲,如果您在 Python 和 C++ 端都访问 Boost,则可以使用 Boost,以获得更优雅、有据可查的 IPC。如果您不需要进程直接通信或彼此共享内存而只需要来回发送信息,则可以使用套接字。只需在两个进程的未使用端口上打开一个套接字,然后通过套接字传递消息。

以上是关于“C++ 应用程序可以在完成时发出 python 脚本信号”吗?的主要内容,如果未能解决你的问题,请参考以下文章