django python3 异步_python – Django – 如何设置异步长时间后台数据处理任务?

关于Django app设计的新问题:

我为我的网站建立报告引擎.而且我的数据量很大(随着时间的推移而变得越来越大),并且必须应用一些算法.计算承诺对资源很重,如果它们是由用户的请求执行的话,那将是愚蠢的.因此,我认为将它们放入后台进程中,后台进程将不断地执行并不时返回结果,这可能是Django视图的例程,用于按需生成html输出.

我的问题是 – 建立这样的系统的适当设计方法是什么?有什么想法吗?

最佳答案 芹菜是您最好的选择之一.我们正在成功使用它.它具有强大的调度机制 – 您可以将任务计划为定时作业,也可以在用户(例如)请求任务时在后台触发任务.

它还提供了查询此类后台任务状态的方法,并具有许多流控制功能.它允许非常容易地分配工作 – 即您的芹菜后台任务可以在单独的机器上运行(这非常有用,例如,heroku web / workers split,其中web进程限制为每个请求最多30秒).它提供了各种队列后端(它可以使用数据库,rabbitMQ或许多其他排队机制.通过最简单的设置,它可以使用您的Django站点已经使用的相同数据库(这使得它易于设置).

如果您正在使用自动化测试,它还有一个有助于测试的功能 – 它可以设置为“急切”模式,后台任务不在后台执行 – 从而提供可预测的逻辑测试.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值