gpt4 book ai didi

python - 具有扭曲和 Python 的 Websocket 服务器在后台执行复杂的工作

转载 作者:太空狗 更新时间:2023-10-29 20:57:00 25 4
gpt4 key购买 nike

我想编写一个服务器来处理 Websocket 客户端,同时通过 sqlalchemy 执行 mysql 选择并同时抓取多个网站(抓取)。必须计算接收到的数据,将其保存到数据库,然后发送到 websocket 客户端。

我的问题是从逻辑的角度来看,如何在 Python 中完成此操作。我需要如何设置代码结构以及哪些模块是这项工作的最佳解决方案?目前,我确信使用 twisted with threads 在其中运行 scrape 和 select 东西。但这可以用更简单的方法来完成吗?我只找到简单的扭曲示例,但显然这似乎是一项更复杂的工作。有没有类似的例子?我该如何开始?

最佳答案

Cyclone ,一个基于 Twisted 的“网络工具包”,基于/类似于 facebook/friendfeed 的 Tornado服务器,包含对 WebSockets 的支持:https://github.com/fiorix/cyclone/blob/master/cyclone/web.py#L908

示例代码:

这是一个使用 txwebsocket 的例子:

在 Twisted 中使用 SQLAlchemy 可能会遇到问题;根据我的阅读,它们不能很好地协同工作(source)。您是否与 SQLA 结合,或者另一个更兼容的 OR/M 就足够了?

一些扭曲友好的 OR/M 包括 Storm ( fork )和 Twistar ,并且您始终可以求助于 Twisted 的核心数据库抽象库 twisted.enterprise.adbapi .还有其他产品的异步友好数据库库,例如 txMySQL , txMongo , 和 txRedis , 和 paisley (沙发数据库)。

可以想象,您可以同时使用 Cyclone(或 txwebsockets)和 Scrapy作为同一个 MultiService 的子服务,在不同的端口上运行,但打包在同一个 Application 实例中。这些服务可以通过父服务或某些 RPC 机制(如 JSONRPCPerspective BrokerAMPXML-RPC(2)等)进行通信,或者您可以直接从 scrapy 写入数据库服务并使用 websockets 从中读取。 Redis 非常适合这个 IMO。

关于python - 具有扭曲和 Python 的 Websocket 服务器在后台执行复杂的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6250294/

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