我很惊讶地看到这个错误(甚至没有记录在配额中)......
超过100KB,我收到此错误:
TaskTooLargeError: Task size must be less than 102400
关于如何处理这个的任何想法?
上下文:电子邮件正文(HTML)作为参数传递给任务队列。
答案 0 :(得分:5)
您应该将html的正文存储在数据存储区中,然后将该实体的密钥传递给该任务。
如果您想要传递给任务的模型实例,则采用相同的方法。您通常传递实体的密钥,然后任务可以获取它。
通常,如果我想将一个方法作为一个任务推迟,我会为一个以键作为参数的实体创建一个类方法,然后它获取该对象,然后调用该对象的实际方法。我可以直接在实体上调用方法,也可以在需要时推迟。
e.g。
@classmethod
def defer_cancel_supervisor(cls,contract_key):
contract = qtrack.models.Contract.get(db.Key(contract_key))
contract.cancel_supervisor('contract cancelled')