2016-06-23 2 views
0

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

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

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

Пожалуйста, помогите мне с этим. Спасибо

+0

Работает ли рабочий в режиме сшивки? В этом случае рабочий выйдет, когда все рабочие задания будут выполнены. –

+0

№ Рабочие не работают в пакетном режиме. @ 郑福 真 (Его просто работает как «nohup python worker.py') –

+0

Выход рабочего процесса? Или исчезают рабочие, показанные на приборной панели? –

ответ

0

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

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

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

+0

@ 郑福 真 спасибо за помощь. –

Смежные вопросы