Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

python-rq worker fecha automaticamente


Ok, descobri o problema. Foi por causa do tempo limite do trabalhador.
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

Então, de acordo com meu código, o próximo domínio é retirado da fila se 200 url(s) forem buscados de cada domínio. Mas, para alguns domínios, havia um número insuficiente de urls para que a condição fosse encerrada (como apenas 1 ou 2 urls).

Como o código captura todas as exceções e anexa a error.txt Arquivo. Mesmo a exceção de tempo limite rq rq.timeouts.JobTimeoutException foi capturado e anexado ao arquivo. Assim fazendo com que o trabalhador espere por x tempo, o que leva à demissão do trabalhador.