我正在使用scrapy,我试图用芹菜在一台机器上管理多个蜘蛛。我遇到的问题是(有点难以解释),spider会成倍增加->;这意味着如果我的第一个spider启动,而我启动了第二个spider,那么第一个spider将执行两次。在
请在此处查看我的代码:
在处理作业.py在
class ProcessJob():
def processJob(self, job):
#update job
mysql = MysqlConnector.Mysql()
db = mysql.getConnection();
cur = db.cursor();
job.status = 1
update = "UPDATE job SET status=1 WHERE id=" + str(job.id)
cur.execute(update)
db.commit()
db.close()
#Start new crawler
configure_logging()
webspider = spider.MySpider;
if job.ajax == 1:
webspider.custom_settings = CrawlerSettings.ajax_settings;
else:
webspider.custom_settings = CrawlerSettings.normal_settings;
crawler = UrlCrawlerScript(webspider, job)
crawler.start()
crawler.join()
reactor.stop(0)
class UrlCrawlerScript(Process):
def __init__(self, spider, job):
Process.__init__(self)
self.crawler = CrawlerRunner()
self.crawler.crawl(spider, job=job)
def run(self):
d = self.crawler.join()
d.addBoth(lambda _: reactor.stop())
reactor.run(0)
还有蜘蛛:
^{pr2}$它的作用是: 我从我的数据库中检索新的工作(不是在这里的代码中-会有点太多)。然后我要处理它们(运行一个蜘蛛)。正如我所说,问题是当我一次执行两个作业时,第一个spider会“加倍”(因此并行执行两次)。在
有什么建议吗?反应堆可能又出问题了:(
目前没有回答
相关问题 更多 >
编程相关推荐