我希望对计划任务流程有一个基本的了解,以及为什么 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/