python - 来自 Flask 应用程序的预定作业

标签 python flask redis celery scheduled-tasks

我希望对计划任务流程有一个基本的了解,以及为什么 Flask 推荐像 Celery 这样的东西。

我的情况是一个基于网络的工具,它根据用户输入生成电子表格。我将这些电子表格保存到临时目录,当用户单击“下载”按钮时,我使用 Flask 的“send_from_directory”功能将文件作为附件提供。我需要后台服务每 15 分钟左右运行一次,以清除所有超过 15 分钟的文件的临时目录。

我最初的计划是一个在 while(True) 循环中运行的基本 python 脚本,但我做了一些研究以找出人们通常做的事情,并且一切都推荐 Celery 或其他任务管理器。我查看了 Celery,发现我还需要了解 redis,而且我显然需要在 unix 环境中托管 redis。这对于一个每 15 分钟只删除文件的脚本来说是一个很大的麻烦。

我正在使用内置开发服务器在 Windows 中本地开发我的 Flask 应用程序,并使用 IIS 部署到公司内部网上的虚拟机。我边学边学,所以请解释为什么需要这么多机器来定期调用只删除内容的脚本。这似乎过于复杂,但正如我所说,我正在努力学习,所以我想正确地做/学。

谢谢!

最佳答案

您不会为此使用 Celery 或 Redis。一个 cron 作业是非常合适的。

Celery 适用于需要异步运行但要响应主服务器进程中的事件的作业。例如,如果一个注册表单需要发送电子邮件通知,那么将通过 Celery 安排和运行,以免阻塞主要的 Web 响应。

关于python - 来自 Flask 应用程序的预定作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55344666/

相关文章:

flask - 使用从上一个字段中选择的值填充 WTForms 选择字段

Redis 客户端不会在收到消息后设置值

django - 使用 Django 应用程序的主管对运行 celery worker 进行故障排除

redis - 您如何订阅哨兵并从他们那里接收出版物?

python - 在数据框中查找特定单词

python - 使用python将文件数据插入sqlite数据库时出现问题

python - 从 python 列表中删除邮政编码(以从 MapQuest 输出获取州名称)

python - Flask:flask.request.args.get 将 '+' 替换为 url 中的空格

python - 每个 Flask 请求都应该连接到 Redis 集群吗?

python - 在没有 __reduce__ 方法的情况下 pickle 字典子类不会加载成员属性