Va bene ho capito il problema. È stato a causa del timeout del lavoratore.
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
Quindi, secondo il mio codice, il dominio successivo viene rimosso dalla coda se vengono recuperati 200 URL da ciascun dominio. Ma per alcuni domini il numero di URL non era sufficiente per terminare la condizione (come solo 1 o 2 URL).
Poiché il codice cattura tutte le eccezioni e si aggiunge a error.txt
file. Anche l'eccezione di timeout rq rq.timeouts.JobTimeoutException
è stato catturato ed è stato aggiunto al file. Facendo così attendere il lavoratore x
periodo di tempo, che porta alla cessazione del lavoratore.