scrapy异步入库问题
来源:4-20 异步方式入库mysql
慕瓜6579165
2021-06-06
bobby老师,请教下,如何使用scrapy框架异步入库clickhouse,以前用mysql异步能实现,现在想换一个数据库,查找了一遍的数据资料也没有,好像我们scrapy都没提及过这块,按mysql异步数据和mangodb异步的步骤,套到clickhouse上面不行,有什么办法能解决呢。
写回答
1回答
-
首先早期的版本使用的是twisted,这个库生态不太好。所以最新的代码scrapy正在加紧将twisted替换为asyncio,但是目前好像还没有完全支持asyncio,所以你的选择可以有一下选择:
等到scrapy完全支持asyncio以后就可以将 https://github.com/search?q=asyncio+clickhouse 这些库集成进去了
使用twisted的 deferToThread方法将阻塞方法放到线程中去运行,这个需要你对twisted了解一下
将入库的数据写入到消息队列如(rabbitmq,kafka,redis)等,然后再自己写一个消费者,然后使用asyncio或者多线程方式将入库和爬虫解析的逻辑解耦
总结:推荐使用第三种方法,解耦对于你来说会是一个非常好的选择
022021-06-10
相似问题