好吧,我知道了问题所在。这是因为工人超时。
try:
--my code goes here--
except Exception, ex:
self.error += 1
with open("error.txt", "a") as myfile:
myfile.write('\n%s' % sys.exc_info()[0] + "{}".format(self.url))
pass
因此,根据我的代码,如果从每个域中提取了200个url,则下一个域将出队。但是对于某些域,没有足够数量的URL来终止条件(例如仅1个或2个URL)。
由于代码捕获了所有异常并将其追加到error.txt
文件中。甚至rq.timeouts.JobTimeoutException
捕获了rq超时异常,并将其附加到文件中。因此使工人等待x
一段时间,这导致工人的解雇。