scrapy异步入库问题

来源:4-20 异步方式入库mysql

慕瓜6579165

2021-06-06

bobby老师,请教下,如何使用scrapy框架异步入库clickhouse,以前用mysql异步能实现,现在想换一个数据库,查找了一遍的数据资料也没有,好像我们scrapy都没提及过这块,按mysql异步数据和mangodb异步的步骤,套到clickhouse上面不行,有什么办法能解决呢。

写回答

1回答

bobby

2021-06-08

首先早期的版本使用的是twisted,这个库生态不太好。所以最新的代码scrapy正在加紧将twisted替换为asyncio,但是目前好像还没有完全支持asyncio,所以你的选择可以有一下选择:

  1. 等到scrapy完全支持asyncio以后就可以将 https://github.com/search?q=asyncio+clickhouse 这些库集成进去了

  2. 使用twisted的 deferToThread方法将阻塞方法放到线程中去运行,这个需要你对twisted了解一下

  3. 将入库的数据写入到消息队列如(rabbitmq,kafka,redis)等,然后再自己写一个消费者,然后使用asyncio或者多线程方式将入库和爬虫解析的逻辑解耦

总结:推荐使用第三种方法,解耦对于你来说会是一个非常好的选择

0
2
bobby
回复
慕瓜6579165
好的。
2021-06-10
共2条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5796 学习 · 6290 问题

查看课程