def intask(self, nameprefix, f, *args, **kwargs):
taskkwargs = self.get_taskkwargs()
if nameprefix:
name = "%s-%s" % (nameprefix, self.key.id())
taskkwargs["name"] = name
elif taskkwargs.get("name"):
del taskkwargs["name"]
taskkwargs["transactional"] = False
@task(**taskkwargs)
def dof():
f(*args, **kwargs)
try:
# run the wrapper task, and if it fails due to a name clash just skip it (it was already kicked off by an earlier
# attempt to construct this future).
# logdebug("about to run task %s" % name)
dof()
except taskqueue.TombstonedTaskError:
logdebug("skip adding task %s (already been run)" % name)
except taskqueue.TaskAlreadyExistsError:
logdebug("skip adding task %s (already running)" % name)
评论列表
文章目录