异步写入mysql的时候,在保存成功时候我想回调一下成功的addCallback,发现部署到linux后不生效

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

慕少1457817

2020-08-01

图片描述

一开始 , 发现在windows开发环境 ,直接运行程序 不会走进 成功回调 函数 ,
当在爬虫的 def close 方法里 休了几秒后 ,可以进入 成功回调函数,
但是 当我 部署到 linux 的 scrapyd 环境后 发现 成功回调函数 不会进去 , 即使 加大了休眠时长 .

现在业务 需求 , 在插入这条数据后, 要发送 requests.post()请求 调用一下 另一个接口 作为触发条件 .

写回答

2回答

bobby

2020-08-05

//img.mukewang.com/szimg/5f2a217609efe19810610327.jpg 你可以把逻辑写在这里啊

0
6
bobby
回复
慕少1457817
加你了
2020-08-13
共6条回复

bobby

2020-08-03

这里callback是异步调用函数 不是成功回调函数, 这里有错误回调函数 是hanle_error 如果这两个都不进入 那么你就需要看看scrapy的日志,因为如果mysql连接失败 也是异步的,如果连接失败了这两个函数都不会进入,你看看scrapy的日志能看出来  你这里如果想在插入成功以后发起下一个请求 https://stackoverflow.com/questions/38467052/scrapy-make-http-request-in-pipeline 可以参考这个


0
1
慕少1457817
我就是想在保存成功后 ,做一些业务逻辑(发送请求告诉别人我这入库成功), 我现在在 addCallback 后面 加了time.sleep(1) ,休1 秒后每次 都成功调用这个 回调函数了, . 入库失败它会调用addErrback , 那成功的时候呢 , 不是 addCallback 吗
2020-08-03
共1条回复

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

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

5795 学习 · 6290 问题

查看课程