首页 > 解决方案 > 在 django 中使用任务队列而不泄漏 kwargs

问题描述

我想使用 django 创建一个网页,该网页在请求时会显示一个表单,要求输入各种用户输入,包括用户密码。提交后,应该启动一个并发任务,它将用户输入作为参数并进行各种计算。

注意

  1. 任务必须同时启动,因为计算可能需要一段时间,我想立即通知用户他的任务已被接受 - 我想让他在另一个视图中了解他的任务的最新信息。

  2. 明文用户密码是任务参数的一部分。必须如此,因为计算涉及依赖密码的加密操作。

现在我将使用 celery 和 django_celery_results 作为该目标的结果后端(并且已经开始使用它),当我注意到:哇... django_celery_results 将明文密码作为任务 kwargs 的一部分存储在数据库中。这不酷。在阅读celery security documentation之后,纯文本密码的整个 RabbitMQ 消息传递对我来说似乎有点不安全。谁知道 celery 在哪个日志中写入密码。

总结一下:celery 和其他任务队列似乎并非旨在将敏感信息作为参数处理。我真的只需要启动一个简单的并发任务,更新其状态并将其结果存储在数据库中。我想纯粹留在 python3 和 django 中。有什么建议吗?

编辑:

标签: djangotaskcelerydjango-celerytask-queue

解决方案


推荐阅读