CherryPy 用于网络托管控制面板应用程序

发布于 2024-07-10 16:43:32 字数 409 浏览 5 评论 0原文

很长一段时间以来,我一直想启动一个宠物项目,其目标是 是时候成为一个网络托管控制面板了,但主要集中在Python托管上—— 意思是我想为用户提供一种生成/启动 Django/ 的方法 其他框架项目直接来自面板。 我好像有 找到了用它构建我的应用程序的完美工具:CherryPy。

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

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

将会有很多耗时的任务,因此如果其中一项 任务块,尝试访问其他页面的其余用户将 等待并最终超时。

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

你有什么建议?

For quite a long time I've wanted to start a pet project that will aim in
time to become a web hosting control panel, but mainly focused on Python hosting --
meaning I would like to make a way for users to generate/start Django/
other frameworks projects right from the panel. I seemed to have
found the perfect tool to build my app with it: CherryPy.

This would allow me to do it the way I want, building the app with its own HTTP/
HTTPS server and also all in my favorite programming language.

But now a new question arises: As CherryPy is a threaded server, will
it be the right for this kind of task?

There will be lots of time consuming tasks so if one of the
tasks blocks, the rest of the users trying to access other pages will
be left waiting and eventually get timed out.

I imagine that this kind of problem wouldn't happen on a fork based server.

What would you advise?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苄①跕圉湢 2024-07-17 16:43:32

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

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

"Threaded" and "Fork based" servers are equivalent. A "threaded" server has multiple threads of execution, and if one blocks then the others will continue. A "Fork based" server has multiple processes executing, and if one blocks then the others will continue. The only difference is that threaded servers by default will share memory between the threads, "fork based" ones by default will not share memory.

One other point - the "subprocess" module is not thread safe, so if you try to use it from CherryPy you will get wierd errors. (This is Python Bug 1731717)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文