在Django应用程序中定期从API拉取数据的任务。

6 浏览
0 Comments

在Django应用程序中定期从API拉取数据的任务。

这个问题已经在此处有答案:

如何设置定时任务?

在Django应用程序中,如何定期(比如每10秒)向API发送请求?

目前我已经设置了一个cron来负责进行API调用并更新数据,但cron只有分钟精度。我希望数据每10秒更新一次。

admin 更改状态以发布 2023年5月24日
0
0 Comments

创建一个管理命令,调用你的脚本五次,在每次调用后暂停10秒。然后从cron中每分钟调用该管理命令。

0
0 Comments

使用实现通用事件调度程序的sched模块。 \n

import sched, time
s = sched.scheduler(time.time, time.sleep)
def do_something(sc): 
    print "Doing stuff..."
    # do your stuff
    s.enter(60, 1, do_something, (sc,))
s.enter(60, 1, do_something, (s,))
s.run()

\n第一次编辑:我的答案不够具体,因此这是django的答案。 \n在views.py中: \n

import sched, time
s = sched.scheduler(time.time, time.sleep)
def do_something(sc): 
    print "Doing stuff..."
    # Call your API HERE
    s.enter(10, 1, do_something, (sc,))
    return your_value or your template
s.enter(10, 1, do_something, (s,))
s.run()
def home(request, sc):
    api_value = do_something(sc)
    return rendertemplate(request, 'template.html', {'api_value': api_value}

0