Измерение времени разбора паука, построенного с помощью Scrapy - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь измерить, сколько времени одному из моих пауков нужно для анализа сайта. Для этого у меня есть следующий код:

class TestClass():

t0 = 0
t1 = 0

def run_experiment(self, p):
    process = CrawlerProcess()
    d = process.crawl(MySpider)
    d.addBoth(lambda _: reactor.stop())

    reactor.run()

    self.t0 = time.time()
    print("t0: ", self.t0)
    process.start()

    self.t1 = time.time()
    print("t1: ", self.t1)

    p.put( (self.t1-self.t0) )

def init(self):
    total_time = 0

    for i in range(22):
        q = Queue()

        p = Process(target=self.run_experiment, args=(q,))

        p.start()
        spent_time = q.get()
        print("t0: ", self.t0, "--- t1: ", self.t1, "    Spent time  = ", spent_time)
        p.join()

        total_time = total_time + spent_time
        print(total_time)


class _main_test():
    if __name__ == '__main__':
        testClass = TestClass()
        testClass.init()

Проблема, с которой я сталкиваюсь, заключается в том, что и t0, и t1 имеют одинаковое значение, поэтому кажется, что процесс не завершился к тому времени, когда я вычисляю t1 , Как я могу убедиться, что процесс завершен к тому времени, когда я вычисляю t1, не штрафуя тест? (без сна программы или аналогичных решений, поскольку это увеличит время тестирования).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...