2008-12-01 44 views
1

相当长的一段时间,我想开始一个宠物项目,目标是在 时间成为虚拟主机控制面板,但主要集中在Python托管 - 意思是我会喜欢让用户通过面板直接生成/启动Django/ 其他框架项目。我似乎有 找到完美的工具来建立我的应用程序:CherryPy。CherryPy为虚拟主机控制面板应用程序

这将允许我以我想要的方式进行操作,使用其自己的HTTP/ HTTPS服务器构建应用程序,并且还使用我最喜欢的编程语言。

但现在出现了一个新的问题:由于CherryPy是一个线程服务器,它会是这样的任务的权利吗?

将会有大量耗时的任务,所以如果其中一个 任务阻塞,其他用户尝试访问其他页面将会等待并最终超时。

我想这种问题不会发生在基于分叉的服务器上。

你会建议什么?

+1

不知道你是否知道 - 但Webfaction.com曾经是:python-hosting.com和他们的面板做了很多你描述的。当然,CherryPy的创建者开始Webfaction :-) – torial 2008-12-01 17:27:00

回答

1

“Threaded”和“Fork based”服务器是等效的。一个“线程”服务器有多个执行线程,如果一个阻塞,那么其他线程将继续。 “基于分叉”的服务器有多个进程正在执行,如果其中一个阻塞,则其他进程将继续。唯一的区别是线程服务器默认会在线程之间共享内存,“基于分支”的线程默认不会共享内存。

另一点 - “子进程”模块不是线程安全的,所以如果你尝试从CherryPy使用它,你会得到更奇怪的错误。 (这是Python Bug 1731717

+0

你为什么没有考虑到GIL? – webKnjaZ 2017-01-03 08:40:09