1

很长一段时间以来,我一直想开始一个宠物项目,旨在及时成为一个网络托管控制面板,但主要专注于 Python 托管——这意味着我想为用户提供一种生成/启动 Django 的方法/ 面板中的其他框架项目。我似乎找到了用它来构建我的应用程序的完美工具:CherryPy。

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

但是现在出现了一个新问题:由于 CherryPy 是一个线程服务器,它是否适合这种任务?

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

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

你有什么建议?

4

1 回答 1

1

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

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

于 2008-12-01T11:54:45.633 回答