django怎么循环执行一个函数

比方说在views里面写了一个监控网站可用性的函数。我需要这个函数不停的循环运行。我怎么样可以让这个东西想关闭就关闭想开启就开启呢?

大概意思就是我怎么通过请求一个地址来开启这个功能(开启后不停的在执行),然后再请求一个地址就可以关闭它。

阅读 6k
3 个回答

不明白你为什么要通过跳转两个不同的url来控制监控,用参数的形式更加方便和易扩展

简单这样做可以实现:

import threading

# 这是你写的监控函数
def monitor():
    ...
    
def control_monitor(enable):
    with threading.Lock():
        while enable:
            monitor()
    if enable:
        return HttpResponse('开启完成')
    else:
        return HttpResponse('关闭完成')

至于你怎么请求地址都没关系,只要调用上面的control_monitor()方法即可,想开启就传参True,想关闭就传False

上面那个不行, 如果别人访问四次就会生成四个任务. 其实直接用threading在views里起个线程就行了

subprocess 你值得拥有!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题