#1172·webmagic

关于Spider#setScheduler(Scheduler) 存在 bug

作者: KamiNoYuki创建于 2024年7月6日更新于 2024年8月15日

方法代码: java public Spider setScheduler(Scheduler updateScheduler) { checkIfRunning(); // 此处存在问题,这样会导致直接将内部的scheduler 设置为 updateScheduler,然后再尝试自己 poll 自己进行数据迁移 SpiderScheduler oldScheduler = this.scheduler; // 应该修改为如下所示 Scheduler oldScheduler = scheduler.getScheduler(); scheduler.setScheduler(updateScheduler); Request request; while ((request = oldScheduler.poll(this)) != null) { System.out.println("move oldScheduler task to updateScheduler"); this.scheduler.push(request, this); } return this; }

内容来源: code4craft/webmagic