0

来自https://developers.google.com/appengine/articles/deferred的这段代码会是线程安全的吗?(可与runtime: python27+一起使用threadsafe: yes

class GuestbookUpdater(Mapper):
    KIND = Greeting

    def map(self, entity):
        if entity.content.lower().find('foo') != -1:
            entity.content += ' Bar!'
            return ([entity], [])
       return ([], [])
  mapper = MyMapper()
  deferred.defer(mapper.run)

另外,不应该读

class GuestbookUpdater(Mapper):
    KIND = Greeting

    def map(self, entity):
        if entity.content.lower().find('foo') != -1:
            entity.content += ' Bar!'
            return ([entity], [])
       return ([], [])

mapper = GuestbookUpdater()
deferred.defer(mapper.run)
4

1 回答 1

0

该页面顶部示例中的注释解释说 defer 的调用应该发生在“其他地方”,这也适用于后面的示例 - 它不应该像你拥有的那样位于包的顶层,或者在导入包时调用它!将这些行放入请求处理程序方法中,然后您可以通过浏览器访问该方法以触发作业。

于 2013-05-27T15:29:31.567 回答