Open QingGo opened 6 years ago
另外暴力删除掉SpiderKeeper.db以后,发现SpiderKeeper好像不能自动同步Scrapyd上已有的项目信息。
我也遇到同样的问题,请问如何解决
我也遇到同样的问题,请问如何解决
最终我还是没解决这个问题,所以放弃spiderkeep改用celery-beat来管理定时任务了
我也遇到同样的问题,请问如何解决
最终我还是没解决这个问题,所以放弃spiderkeep改用celery-beat来管理定时任务了
难受啊
我也遇到同样的问题,请问如何解决
最终我还是没解决这个问题,所以放弃spiderkeep改用celery-beat来管理定时任务了
现在基本上确定是代码中出现了某些问题让scrapyd阻塞了,与Spiderkeeper无关。但是同一爬虫在不同机器上就不会出现问题,懵逼
你可以多看看db的内容,这个应该在源码里面加一个删除db里面的project,job
SpiderKeeper调用Scrapyd的任何一个API都有可能会各种原因失败(比如网络异常,或者scrapyd本身被请求得太频繁导致堵塞),从而造成两者状态不同步,我觉得对于错误应该要加上相应的处理机制,比如在界面提示你操作失败,或者自动重试
不过我已经不用SpiderKeeper了,现在改用celery+celery-beat来管理定时任务
scrapyd可以设置同时运行爬虫的进程数,其实我想知道celery+celery-beat怎么调用scrapy爬虫,有推荐教程吗?
scrapyd可以设置同时运行爬虫的进程数,其实我想知道celery+celery-beat怎么调用scrapy爬虫,有推荐教程吗?
celery相关的教程可以看官网,celery+celery-beat只是用来定时发异步的请求,在python调用Scrapyd你可以试试python-scrapyd-api这个库
好的,谢谢
我是直接调用api来删除SpiderKeeper的项目的:
删除任务以后发现,在Docker里面Scrapyd的容器CPU占用率接近100%,而SpiderKeeper的日志出现了以下信息:
尝试停掉Scrapyd,然后SpiderKeeper里面自然而然地出现一堆请求Scrapyd的listjobs和listspiders的接口失败的警告,然而奇怪的是,后面的?project=接的都是已经已经删除的项目,猜测原因是删除项目以后(Scrapyd上已经删除了这个项目了),SpiderKeeper没有在自己的sqlite数据库里删除对应的定期任务。
另外删除项目后在SpiderKeeper界面上新建新的项目,项目下也会显示原来项目的运行记录。猜测原因是删除项目以后(Scrapyd上已经删除了这个项目了),SpiderKeeper没有在自己的sqlite数据库里删除对应的任务运行记录。
也许是我调用api来删除SpiderKeeper的项目的姿势不对?求帮助。