繁体   English   中英

Python:在后台运行进程并具有杀死进程的能力

[英]Python: running process in the background with ability to kill them

我需要不断加载许多数据源。 加载数据可能需要20到30秒。 我知道每小时通过检查一个MySQL数据库来加载什么提要。

我最多可以同时加载20个供稿。 重要的是,所有提要之间都不能互相阻塞,因为我需要不断刷新它们。

当我不再需要加载提要时,正在读取的数据库将被更新,因此我需要停止从主程序中加载我想做的提要,因此我不需要与数据库的多个连接。

我知道我可以使用线程,子进程或gevents来做到这一点。 我想问问这些方法是否最好。

谢谢

这取决于您的应用程序逻辑。 如果仅将数据馈送到数据库中而无需执行任何占用大量CPU的任务,则您的大部分应用程序时间都将花费在IO上,线程就足够了。 如果您要占用大量CPU资源,则应使用多处理模块,以便可以使用所有CPU内核,由于GIL,这些线程将不允许您使用。

使用子流程只会增加实现与多处理模块中已经实现的相同内容的额外任务,因此我将跳过(为什么要重新发明轮子)。 gevents只是一个事件循环,我看不出有什么比使用线程更好的了。 但是,如果我错了,请纠正我,我从未使用过gevent。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM