从Django应用程序中的API提取数据的周期性任务

2024-10-06 13:45:13 发布

您现在位置:Python中文网/ 问答频道 /正文

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

现在我已经设置了一个cron,它负责进行API调用和更新数据,但是cron的精确度很小。我希望数据每10秒更新一次。你知道吗


Tags: 数据djangoapi应用程序cron发出请求精确度
2条回答

创建一个管理命令,该命令将调用脚本五次,并在每次调用后暂停10秒。每分钟从cron调用一次管理命令。你知道吗

使用sched模块,它实现了一个通用事件调度器。你知道吗

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()

编辑1:我的答案不够具体,所以这里是django的答案。你知道吗

在视图.py地址:

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}

相关问题 更多 >