Я пытаюсь измерить, сколько времени одному из моих пауков нужно для анализа сайта. Для этого у меня есть следующий код:
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, не штрафуя тест? (без сна программы или аналогичных решений, поскольку это увеличит время тестирования).