我正在开发一个应用程序,它使用多个进程。
每个进程都是由原始python进程创建的(即,涉及一个级别的分叉)。
为了在子流程死亡的情况下优雅地终止,我希望我的主流程监视每个子流程的状态,例如:
while lifeIsGood:
for process in processes:
if not process.is_alive()
lifeIsGood = False
break
sleep(1)
# forcibly reap the children
我也希望这个应用程序呈现一个wxpython GUI。但是,由于我希望主进程做什么,我不能使阻塞调用App。在该过程中的Main Loop
。
我建议的解决方案是运行应用程序。分叉后在子进程(
。进程
子类)的线程中的MainLoop
然而,这会导致灰色(无响应)GUI。
为了从子进程(后叉)运行GUI线程,我需要设置一些特殊的东西吗?
(我知道我可以在一个单独的子进程中运行终止代码,因为进程列表是在分叉前创建的。然而,从设计的角度来看,在主流程中使用该代码会更干净。
这是不容易做到的,因为收割进程必须是它希望查询或终止的任何子进程的父进程。)
我非常确定您需要将wx主循环作为主进程,并从线程中启动多进程。因此,您可以混合使用线程和多处理模块。
查看以下资源:
在我的Java应用程序中,我想运行一个批处理文件,该批处理文件调用“” 似乎我甚至不能让我的批处理文件执行。我没主意了。 这是我用Java写的: 以前,我有一个我想运行的Python Sconscript文件,但由于它不起作用,我决定通过批处理文件调用脚本,但该方法尚未成功。
问题内容: 据我所知,我可以使用Golang运行简单的Web服务器,只需使用软件包即可,例如 其中PORT是要侦听的TCP地址。 我可以将PORT用作PORT S ,例如从一个应用程序中使用吗? 我的问题可能很愚蠢,但是“谁不问,他就不会回答!” 感谢前进! 问题答案: 你不能。 但是,您可以在不同的端口上启动多个侦听器
我们正在构建一个基于Kinesis/DynamoDB流的服务,我们有一个问题(我们在官方文档中找不到),那就是我们是否可以使用相同的租赁表(DynamoDB)来存储使用相同流的不同KCL应用程序的检查点信息。 是好的练习吗? 它会在行为上产生某种不一致吗? 您是否建议每个KCL应用程序使用单独的租赁表? 非常感谢你。
我怎么能做到..以编程方式有什么方法可以做到这一点。 Pls救命!
我们有现有的spring批处理应用程序,我们想使它可以在多个节点上运行。 spring批处理的可伸缩性文档包括代码更改和配置更改。 我只是想知道这是否可以通过仅仅配置更改来实现(添加新的类并在配置中连接它是好的,但只是想避免对现有的类进行代码更改)。 非常感谢事先的帮助。
我在dockerized应用程序和Memcached上遇到了一个问题,要存储一些值,显然,当a启动一个运行Spymemcached客户端的新Docker实例时,所有存储在缓存中的数据都是无效的,所以如果我之前在节点1的缓存中存储了一些值,然后启动节点2,这些值将从Memcached服务器中清除,最后如果a在节点1上再次存储相同的值,并在节点2上查询,它们将共享到两个节点之外,而不清除数据。是预期的