每隔N个重复运行后台任务

时间:2018-11-13 21:46:02

标签: python django

我正在使用django,我希望在后台运行一个循环,假设每60秒运行一次。我找到了适用于Django的插件,该插件似乎满足了我的需求,但是我不确定如何使其工作。我了解您将@background放入其中,但据我了解django。这进入一个视图吧?但是在第一次加载代码之前,不是必须首先加载网页吗?

我正在谈论以下插件

https://django-background-tasks.readthedocs.io/en/latest/

2 个答案:

答案 0 :(得分:1)

请明确说明:

  • 您需要安装应用程序(%Initialisations close all;format short g;format compact;clc;clear; k1=500000; k2=20000; m1=20; m2=400; opt=stepDataOptions('StepAmplitude',200); for (b = [1000:1000:15000]) Hs = tf([b k2],[(m1*m2) (b*(m1+m2)) (k2*(m1+m2)+k1*m2) (b*k1) (k1*k2)]); hold on; stepplot(Hs,opt) title("Shock Absorber Performance to Step Input"); ylabel("Force (N)"); legend; hold off; end ,添加到pip install ...,运行INSTALLED_APPS
  • 您需要定义一个(或一些)用migrate装饰的函数
  • 您需要调用这些修饰的函数,可能是在视图中或其他地方。这会将功能添加到队列(数据库中的表,该表在运行@background时创建)。
  • 您需要将migrate作为常规的cron作业运行;这将读取队列并执行功能。只要您不调用它,就不会执行任何功能,并且队列只会继续填充。

这能回答您的问题吗?还是我误会了你?

答案 1 :(得分:0)

如果您想朝新的方向发展,并且如果这是您定期运行的异步命令,请考虑将celery与celery-beat模块一起使用。