Рабочий python-rq закрывается автоматически

Я реализую Python-RQ, чтобы передать домены в очередь и очистить его с помощью Beautiful Soup. Так что я работаю с несколькими рабочими, чтобы выполнить работу. На данный момент я создал 22 рабочих, и все 22 рабочих зарегистрированы на панели управления rq. Но через некоторое время рабочий останавливается сам по себе и не отображается на панели инструментов. Но в webmin он отображает всех рабочих как работающих. Скорость ползания также снизилась, т. Е. Рабочие не бегут. Я попытался запустить рабочий, используя supervisor и nohup. В обоих случаях рабочие останавливаются сами собой.

Что является причиной этого? Почему рабочие останавливаются сами по себе? А сколько рабочих мы можем запустить на одном сервере?

Наряду с этим, всякий раз, когда работник незарегистрирован на панели мониторинга rq, количество неудачных попыток увеличивается. Я не понимаю почему?

Пожалуйста, помогите мне с этим. Благодарю вас

1 ответ

Решение

Хорошо, я понял проблему. Это было из-за рабочего перерыва.

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 для завершения условия (например, только 1 или 2 URL).

Поскольку код перехватывает все исключения и добавляет error.txt файл. Даже исключение тайм-аута RQ rq.timeouts.JobTimeoutException был пойман и был добавлен в файл. Таким образом заставляя работника ждать x количество времени, которое приводит к увольнению работника.

Другие вопросы по тегам