我正在实现python,以在队列中传递域,并使用Beautiful对其进行刮除。因此,我正在运行多个工人,以完成工作。我从现在开始了22名工人,所有22名工人都在rq仪表板上注册。但是过了一段时间,工人自己停了下来,没有在仪表板上显示。但是在webmin中,它显示所有的工作人员都在运行。爬行速度也有所下降,即工人不跑步。我试着用上级和上级来管理那个工人。在这两种情况下,工人们都会自己停下来。
原因是什么?为什么工人们要自己停下来?我们能在一台服务器上启动多少名员工?
同时,每当从rq仪表板中未注册员工时,失败计数就会增加。我不明白为什么?
请帮我处理这个。谢谢
发布于 2016-06-29 09:59:05
好吧我解决了问题。那是因为工人超时。
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(s),则下一个域将被排出队列。但对于某些域,条件终止的urls数量不足(比如只有1或2个urls)。
因为代码捕获所有异常并附加到error.txt文件。甚至rq超时异常rq.timeouts.JobTimeoutException也被捕获并附加到文件中。从而使员工等待x的时间,从而导致工人的终止。
https://stackoverflow.com/questions/37982703
复制相似问题