我希望对预定的任务流程有一个基本的了解,以及为什么建议Flask建议使用Celery之类的东西。
我的情况是一个基于Web的工具,它可以根据用户输入生成电子表格。我将这些电子表格保存到临时目录中,当用户单击“下载”按钮时,我使用Flask的“ send_from_directory”功能将文件作为附件提供。我需要每隔15分钟左右运行一次后台服务,以清除15分钟之前的所有文件的temp目录。
我最初的计划是在while(True)循环中运行一个基本的python脚本,但是我进行了一些研究以发现人们通常会做什么,并且一切都推荐Celery或其他任务管理器。我查看了Celery,发现我还需要了解Redis,并且显然需要在unix环境中托管Redis。对于仅每15分钟删除一次文件的脚本来说,这很麻烦。
我正在使用内置的开发服务器在Windows中本地开发Flask应用程序,并通过IIS部署到公司Intranet上的虚拟机上。我正在学习中,所以请解释为什么需要这么多的机制来定期调用简单删除内容的脚本。这似乎是一个非常复杂的问题,但是正如我所说,我正在尝试自己学习的过程,所以我想正确地学习/学习它。
谢谢!
答案 0 :(得分:0)
您不会为此使用Celery或Redis。安排工作很合适。
Celery适用于需要异步运行但响应主服务器进程中事件的作业。例如,如果注册表单要求发送电子邮件通知,则将通过Celery安排并运行该通知,以免阻止主要的Web响应。