-
Notifications
You must be signed in to change notification settings - Fork 280
Update base.py #91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update base.py #91
Conversation
slave sleep fixed, reason: elapsed time after 5 seconds is reset to zero and the spider continues to work
|
Привет, я не понял, что делает этот патч. |
|
@lorien так посмотри в код, твоя же библиотека. def load_new_task(self):
start = time.time()
while True:
try:
with self.save_timer('task_queue'):
return self.taskq.get()
except queue.Empty:
qsize = self.taskq.size()
if qsize:
logger_verbose.debug('No ready-to-go tasks, Waiting for scheduled tasks (%d)' % qsize)
return True
if not self.slave:
logger_verbose.debug('Task queue is empty.')
return None
else:
# Temporarily hack which force slave crawler
# to wait 5 seconds for new tasks, this solves
# the problem that sometimes slave crawler stop
# its work because it could not receive new
# tasks immediately
if not self.transport.active_task_number():
if time.time() - start < 5:
time.sleep(0.1)
logger.debug('Slave sleeping')
else:
self.slave = False
break
else:
break |
|
Уважаемые собеседники, мне нечего добавить к моим словам. Я не понял, что делает патч. Я ожидаю услышать ответ, желательно по-русски и подробно. |
|
@eg0r так объясни подробне, что изменилось, твой же PR. |
|
@lorien автор же написал, что он делает. @orgkhnargh посмотри на автора PR. |
|
Повторяю в третий раз. Я не понял, что написал автор PR.
|
|
Привет, с подсветкой кода, я не разобрался, поэтому вставлю так, запустите код ниже, когда паук завершится, отпишитесь сюда. from grab.spider import Spider, Task logging.basicConfig(level=logging.DEBUG) class MiniSpider(Spider): spider = MiniSpider() |
|
Запустил код. Паук завершился. Что дальше? Может быть, хватит загадками писать? Кстати, смысл вашего кода я не понял в том числе. Зачем вы в task_generator выставляете slave=True? Смысл slave=True как раз в том, чтобы task_generator не запускался. |
|
У меня в бесконечном цикле работает, я тоже мысли не читаю, откуда я могу знать смысл slave? Отмена значит. |
|
Т.е. вы не знаете что делает slave=True, но присылаете патч, который изменяет эту настройку? :) Мне кажется, комментарии тут излишни. |
Можно и без телепатии обойтись. Например, можно в исходный код посмотреть: https://github.com/lorien/grab/blob/master/grab/spider/base.py#L899 |
|
Бесконечного цикла там нет, slave спайдер 5 секунд ждёт заданий, а потом завершает работу. |
|
Опускаться до вашего уровня и тролить я не буду, просто с уважением относитесь к вашим пользователям, которым нравится ваша библиотека. Про slave документации не нашел, и читал дискуссии в вашей группе, из прочитанного я понял, что он не дает завершаться спайдеру, если еще могут появиться задачи, этого у меня не происходило и был бесконечный цикл, поэтому прислал патч, слишком много слов написано из за одной строки кода. Закончил. |
|
Уважаемый @ilucian сам себя троллит тем, что :
Резюмирую, @ilucian не понимает, что делает slave=True, проблему внятно не объяснил, примера, повторящего проблему не предоставил, прислал патч, который делает непонятно что, хочет, чтобы я его уважал, только по той причине, что он пользуется моей библиотекой. Извините @ilucian я не понимаю, зачем вам моё уважение, тем более, что вы считаете, чо выше меня уровнем :) |
slave sleep fixed, reason: elapsed time after 5 seconds is reset to zero and the spider continues to work