2017-02-24 53 views
0

如何在不同的Celery任務中持久保留一個API對象?我有一個API對象,每個用戶通過認證會話(python請求)來進行API調用。每個請求都會發送一個user_id,csrftoken等。如何在不同的Celery任務中持久化已驗證的API對象?

我需要在Celery中安排不同的任務來執行API請求,而無需爲每個任務重新進行身份驗證。

我該怎麼做?

回答

1

您可以將這些數據放入數據庫/ memcache中,並通過用戶標識作爲密鑰提取。

如果這些數據是無狀態的 - 沒關係。併發進程採用身份驗證參數,構造請求併發送它。

如果它在每個請求(或某些請求)後更改狀態(唯一遞增請求標識,更改標記等) - 您需要實現一個單例管理器以根據請求提供正確的憑證。所有任務都應該請求來自該經理的憑證。例如,它也可以限制費率。

如果您想將此對象作爲參數傳遞給任務 - 那麼您需要序列化它。只要確保它是可以正常使用的。

相關問題