当前位置: 首页 > 面试题库 >

通知Django运行任务

常哲彦
2023-03-14
问题内容

我做出了一个管理命令,该命令从csv文件填充了我的一个模型。
我需要经常进行此更新,并且csv文件有成千上万的行。
有时可能需要10分钟以上才能完成填充。

我想添加一个功能,使我可以直接通过网站上传csv文件,并且在文件上传后,django应该运行该命令或至少运行其中的逻辑,然后填充数据库。

我将如何处理?我希望能够在上传文件后离开页面,并在任务完成后收到一封电子邮件。


问题答案:

你可以使用Django Background Task进行相同的操作。它是Django的数据库支持的工作队列。并且比Celery易于实施。

from background_task import background
@background(schedule=60)
def your_task():
    # do your cool work here.

这会将转换your_task为后台任务功能。当你从常规代码调用它时,它将实际上创建一个Task对象并将其存储在数据库中。



 类似资料:
  • 任务通知是8.2.0版本新增加的功能。每个任务都有一个32bit的"通知值"(notification value)。RTOS的任务通知是一个事件,可以直接发送到一个任务,并且将该任务从阻塞态恢复。是否更新接收任务的任务通知值是可选的。 任务通知可以通过以下几种方式更新接收任务的通知值: 直接设置而不用覆写接收任务的通知值 覆写接收任务的通知值 设置接收任务通知值的一个或多个bit位 增加接收任务

  • 我想从我的Gradle脚本运行JMeter GUI,这样我就可以仔细控制版本和环境因素,这样我的本地开发人员机器构建1就没有必要的设置了。 我的JMeter的构建。gradle(多项目构建的一部分): 1目前,在我的构建中,所有内容都受到严格的版本控制,是Gradle构建的一部分。这包括NodeJS、NPM和Terraform。从字面上看,唯一的设置先决条件是Java8 JDK。我想用JMeter

  • 问题内容: 我想在重新启动后通知工作正常。我提醒开始,但一次。如果我随后更改了手机上的日期,则没有通知。只有再次运行该应用程序,它们才会运行。也就是说,在不启动应用程序的情况下重新启动电话后,启动电话时,通知仅显示一次。 我在 MainActivity中 设置了通知时间: MyAlarmService (onCreate): MyReceiver: AndroidManifest(MyReceiv

  • 我的域控制器上有一个小脚本,它被设置为通过SMTP向我发送有关最新安全事件4740的电子邮件。 手动执行时,脚本将按预期运行;但是,当设置为通过计划任务运行时,尽管它显示已执行,但没有任何反应(没有电子邮件)。 脚本如下: 计划任务设置如下: 我还尝试了以下方法: 根据任务历史记录:任务开始、行动开始、创建任务流程、行动完成、任务完成。我浏览了网站上一些有着相同“问题”的不同链接,但它们似乎都有一

  • 运行单个采集任务 vendor/bin/imi crawler/run -name task1 运行多个采集任务 vendor/bin/imi crawler/run -name task1,task2 运行所有采集任务 vendor/bin/imi crawler/run