如何在不同的Celery任务中保留经过身份验证的API对象?

时间:2017-02-24 12:44:36

标签: python django python-requests celery

如何在不同的Celery任务中保留API对象?每个用户都有一个API对象,带有经过身份验证的会话(python请求)来进行API调用。每个请求都会发送user_id,csrftoken等。

我需要在Celery中安排不同的任务来执行API请求,而无需为每个任务重新进行身份验证。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以将这些数据放入数据库/内存缓存中,并通过userid作为密钥获取。

如果这些数据是无国籍的 - 那很好。并发进程采用身份验证参数,构造请求并发送它。

如果它在每个请求(或某些请求)之后更改状态(唯一递增请求ID,更改令牌等) - 您需要实现单例管理器以按请求提供正确的凭据。所有任务都应该请求此经理提供凭据。例如,它也可以限制费率。

如果您想将此对象作为参数传递给任务 - 那么您需要序列化它。只要确保它是可连续的。