如何在不同的Celery任务中保留API对象?每个用户都有一个API对象,带有经过身份验证的会话(python请求)来进行API调用。每个请求都会发送user_id,csrftoken等。
我需要在Celery中安排不同的任务来执行API请求,而无需为每个任务重新进行身份验证。
我该怎么做?
答案 0 :(得分:1)
您可以将这些数据放入数据库/内存缓存中,并通过userid作为密钥获取。
如果这些数据是无国籍的 - 那很好。并发进程采用身份验证参数,构造请求并发送它。
如果它在每个请求(或某些请求)之后更改状态(唯一递增请求ID,更改令牌等) - 您需要实现单例管理器以按请求提供正确的凭据。所有任务都应该请求此经理提供凭据。例如,它也可以限制费率。
如果您想将此对象作为参数传递给任务 - 那么您需要序列化它。只要确保它是可连续的。