Scrapy项目实际远程部署时,遇到的一些问题
来源:16-1 scrapyd部署scrapy项目
慕尼黑7546459
2020-03-20
-
代码有修改之后,如何重新发布?:
目前我只是简单的这样:
打包发布:scrapyd-deploy cangl -p spider --version 1.0.0
调度爬虫:curl http://localhost:6800/schedule.json -d project=spider -d spider=movie
疑问1.1:
不是第一次的话,scrapyd上已经有一个job在运行,如果不停掉job,旧的job一直还在,那么旧的代码还是被运行,这个问题该怎么解决?
疑问1.2:
如果有多次打包记录,那么执行 调度爬虫 时, 不指定version的话, 他会运行哪个包呢?
疑问1.3:
打包生成的egg文件,是生成在哪个位置?通过看日志,发现会是这样:
/private/var/folders/wv/j5crpzxs2sv3d_x37wphnpsh0000gn/T/douban_movie-1_0_10-p54z_1vz.egg/spider/middlewares.py,但是,实际上,发现这个文件在本地是不存在的
- 关于日志
疑问2.1:
scrapyd上面的 Logs 数据,是存在什么地方?
疑问2.2:
在本地运行,日志都能正常打印, 但是远程运行, 部分日志看不到,如代码, t ry里面 和 catch 里面的日志,在log中都没有打印,但是本地会被打印:
self.logger.info("Make request from data, reading to crawl...")
# TODO 远程部署从这里往下有报错,但是日志又看不到异常信息
try:
print(type(data_dic))
data_dic["start_time"] = datetime.datetime.now()
except Exception as e:
self.logger.error("Make request from data, occur except...", e)
疑问2.3:
scrapyd 服务重启之后, 原先的日志发现都没了,在哪里找?
疑问2.4:
scrapyd上面的日志, 当某个spider的日志非常多, 需要定位问题时,直接打开log页面搜索,似乎不可行,这该怎么解决?
- 基于scrpay-redis, 运行几个小时之后, 发现会timeout, 进程被退出,日志:
...
redis.exceptions.ConnectionError: Error while reading from socket: (60, 'Operation timed out')
以上,是我远程部署时,实际遇到的一些问题,因为老师也比较忙, 我想集中起来提问, 不过问题比较多, 辛苦老师解答了, 谢谢?
1回答
-
bobby
2020-03-21
scrapyd细节需要看看scrapyd的官方文档, 如果不想了解这么多细节 可以看看这个项目 https://github.com/Gerapy/Gerapy。 这个是封装过scrapyd的
scrapy-redis的报错我还没有遇到过,这个报错是一直出现还是偶尔出现? 这个是redis的报错信息吗?
00
相似问题