我有芹菜工人,我希望他们有60秒的时间限制,如果达到超时或任务完成则清理。 我知道我应该使用软时间限制,但不是为每个任务重写try ... catch子句,我想使用一个抽象的任务类来做到这一点 - 在以下几行中:
class BaseTask(Task):
abstract = True
def apply(self, args=None, kwargs=None, link=None, link_error=None, **options):
try:
super(self.__class__, self).apply(args, kwargs, link, link_error, **options)
except SoftTimeLimitExceeded:
print "cleanup time!"
这段代码不起作用,但有没有办法实现这个目标?
我发现something可能与我需要的相似:
class BaseTask(Task):
def __call__(self, *args, **kwargs):
try:
print "i'm here"
return self.run(*args, **kwargs)
except SoftTimeLimitExceeded:
print "cleanup time!"
但是那里没有例外("我在这里"被打印)