它不一定必须在for循环中,但是如何处理数据列表中的扭曲异步“睡眠”的数据。从本质上讲,我想完成这样的事情,这显然是行不通的。它在循环中运行,没有睡眠。 deferLater是否只需要在方法上使用?如果是这样,我将如何使用twisted实现相同的结果,以便在每个DB保存条目之间存在“休眠”?
@defer.inlineCallbacks
def queryDatabase(self, kwargs):
#Just testing deferLater
for x in xrange(10000):
yield txmongo.my_db.test_collection.save({"something":x * time.time()},safe=True)
d = deferLater(reactor, 5, lambda: none)
print str(datetime.datetime.now()) + ' ==> ' + str(x)
答案 0 :(得分:3)
永远不会失败,只需要写下问题,我就会遇到答案。这似乎对我有用:
@defer.inlineCallbacks
def query(self, kwargs):
# insert some test data
for x in xrange(10000):
print str(datetime.datetime.now()) + '===>' + str(x)
yield deferLater(reactor, 5, lambda: none)
@defer.inlineCallbacks
def makeRequest(self, kwargs):
g = yield self.query(kwargs)