pyspider scheduler 停止调度,重启时间长.

发布于 2022-09-04 07:19:07 字数 838 浏览 14 评论 0

  1. 当前的pyspider为pyspider (0.3.9) python 2.7.5

  2. 大概有200个项目,其中部分stop,运行状态大概有100多个。

  3. projectdb和resultdb 使用的是 mongodb collection有过百万的数据。
    某些porjectdb 的task数据也有数十万条

  4. 当我修改项目的itag 然后修改项目状态为running,然后点run,显示为红色,看scheduler日志提示当前项目状态不是run或者debug,然后schedular停止调度了。

  5. scheduler运行一段时间也有时 停止调度。

当重启scheduler 会打印很多
诸如 :

  • [E 161019 15:07:37 scheduler:241] unknown project: whole_***

  • [E 161019 15:22:46 scheduler:767] not processing pack: **********:2e8087192edf9a9922701d2370cdcf5d http://www.******.com/157405/
    这样的报错, 重启过程特别慢,将近两个小时,看日志没有其它别的异常。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吲‖鸣 2022-09-11 07:19:09

scheduler 停止调度是所有 project 都停止调度还是你尝试重启的那个停止调度?

追踪 scheduler 日志关于 project %s updated, status:%s, paused:%s, %d tasks 的内容,看看 schduler 是否得知 project 状态已改变。

unknown project 如果 project 确实存在,是不应该出现的
not processing pack 是正常的,scheduler 重启后,先前分发的任务就没法追踪了
启动时 scheduler 需要从数据库中恢复所有活动任务的状态,如果任务很多确实会比较耗时

吹梦到西洲 2022-09-11 07:19:09

这个问题已经找到,pyspider的源码中database下的mongodb下的statusdb的status_count查询在数据量特别大的情况下查询非常慢,会造成调度器启动特别长

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文