Рабочий 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
количество времени, которое приводит к увольнению работника.