Okay, ich habe das Problem herausgefunden. Es lag an einer Worker-Zeitüberschreitung.
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
Gemäß meinem Code wird die nächste Domain aus der Warteschlange entfernt, wenn 200 URLs von jeder Domain abgerufen werden. Aber für einige Domains gab es nicht genügend URLs, um die Bedingung zu beenden (z. B. nur 1 oder 2 URLs).
Da der Code alle Ausnahmen abfängt und an error.txt
anhängt Datei. Sogar die rq-Timeout-Ausnahme rq.timeouts.JobTimeoutException
wurde abgefangen und an die Akte angehängt. Dadurch wird der Worker veranlasst, auf x
zu warten Zeitdauer, die zur Kündigung des Arbeitnehmers führt.