gpt4 book ai didi

python - 使用 Stackless Python 3.1 的基本异步(非阻塞)HTTP 客户端有现成的解决方案吗?

转载 作者:可可西里 更新时间:2023-11-01 16:23:36 27 4
gpt4 key购买 nike

更新:在大量使用 Py3 之后,包括编写我自己的异步网络服务器(根据 Dave Beazley 的演示),我终于放弃了 Python(和我的一大堆代码)-:支持 CoffeeScript 运行在 NodeJS 上。检查一下:GitHub(现在你会发现 95% 的有趣代码),npm(对用户来说一点都不友好的包管理器;很好的解脱,easy_install,你从来没有活过取决于你的名字),一个非常庞大的模块存储库(几乎 24/7 发布了大量新东西),一个巨大而充满活力的社区,开箱即用的异步 HTTP 和文件处理......,所有这些(感谢 V8 ) 在 one third the speed of light — 有什么不喜欢的?阅读更多宣传:"The future of Scripting"(幻灯片托管礼貌 SpreeWebdesign)。

我正在寻找一种以异步、非阻塞方式提供 HTTP(和执行 HTTP 请求)的方法。当您像我一样决定使用 Stackless Python 3.1(另请参阅文档 here)时,这似乎很难做到。

有一些基本示例,例如内容丰富且详细的文章 How To Use Linux epoll with Python ,还有一个名为 stacklessexamples 的 Google 代码项目,其中包含一些有值(value)的信息(但没有 Python 3.x 兼容代码)。

因此,在对网络进行多日研究并尝试将我目前发现的各个部分组合在一起之后:有人知道一个非常有用的异步 HTTP 库吗?它不必符合 WSGI(我对此不感兴趣)。

服务器部分应该能够处理多个非阻塞 HTTP 请求(并且可能进行 HTTP header 处理的基础知识); HTTP 客户端部分应该能够以非阻塞方式通过 HTTP 请求检索 Web 内容(也进行基本的 header 处理,但没有授权等花哨的东西)。

到目前为止,我的研究表明非阻塞 HTTP

  1. 是在无堆栈、协作调度环境中唯一有意义的方法;

  2. 凭借标准库的select epoll(在 Py2.6 中引入;一些解决方案更喜欢 libevent,但这意味着另一个在 Stackless Python 3 中是可行的障碍为 the pyevent project seems to have stopped developing at Py2.5 );

  3. 遗憾的是
  4. 仍然不是家常便饭,大多数人都依赖于阻止 HTTP。

现在看来,我必须学习套接字编程的基础知识并推出我自己的 HTTP 服务器/客户端库。我仍然回避这项任务,因为我在该领域的背景很少,并且注定会以这种方式“重复历史”。

如果有任何相关指示,我将非常高兴。我非常喜欢使用 select.epoll 的解决方案;我似乎记得它比旧的 asyncore 更具可扩展性(但也许有人对此有更精确的数据)。作为最低要求,解决方案应在 Ubuntu 9.10 上运行。

最佳答案

我知道这就像起死回生(flow 可能早就解决了他的问题),但为了完整起见,stackless 可用于 3.1.3:

有关使用 stacklesssocket 实现 HTTP 服务器的信息:

关于python - 使用 Stackless Python 3.1 的基本异步(非阻塞)HTTP 客户端有现成的解决方案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2372762/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com