我有一个页面,用户在其中选择一个Python脚本,然后执行该脚本。我的问题是,一些脚本需要一段时间来执行(高达30米),所以我想在后台运行它们,而用户仍然可以在网站上导航。
我试着使用芹菜,但因为我在Windows上,我不能比使用--pool=solo
做得更好,而允许用户做其他事情,一次只能为一个用户做。
我在寻找解决方案时也看到了这个线程,但没有设法真正理解它是如何工作的,也没有如何实现它,以及确定它是否真的回答了我的问题…
所以这是我的问题:我怎么能有多个线程/多个进程芹菜,而在Windows? 或者,如果有另一种方法,我如何在后台同时执行多个任务?
您是否确定您的慢脚本属于cpu绑定任务还是I/O绑定任务?
如果它们有I/O限制,你可以使用distributedpython.com博客中基于策略1的eventlet和gevent
但是如果它们是CPU限制的,你可能不得不考虑使用像专用的芹菜窗口盒子(或windows Docker容器)的方式来解决windows上的芹菜台球问题,通过设置基于策略2的环境变量(FORKED_BY_MULTIPROCESSING=1
)在distributedpython.com的博客