3

I am surprised to see this error (and not even documented in the quotas)...

Exceeding 100KB, I get this error:

TaskTooLargeError: Task size must be less than 102400

Any ideas on how to handle this?

The context: the body of emails (HTML) are being passed as arguments to a task queue.

4

1 回答 1

6

您应该将 html 的主体存储在数据存储中,然后将该实体的密钥传递给任务。

如果您有要传递给任务的模型实例,则采用相同的方法。您通常传递实体的密钥,然后任务可以获取它。

通常,如果我想将方法​​作为任务推迟,我会为将键作为参数的实体创建一个类方法,然后它会获取对象,然后调用对象的实际方法。我可以直接在实体上调用该方法,也可以在需要时推迟处理。

例如

@classmethod
def defer_cancel_supervisor(cls,contract_key):

    contract = qtrack.models.Contract.get(db.Key(contract_key))
    contract.cancel_supervisor('contract cancelled')
于 2013-05-28T09:10:01.313 回答