是否可以使用 django-background-task 将函数置于定时循环中
Posted
技术标签:
【中文标题】是否可以使用 django-background-task 将函数置于定时循环中【英文标题】:Is it possible to put a function in timed loop using django-background-task 【发布时间】:2016-05-06 06:37:28 【问题描述】:假设我想在不使用 cron 作业的情况下每 5 分钟执行一次函数。
我想做的是创建一个实际调用该函数的 django 后台任务,在该函数结束时,我再次使用 schedule = say 60*5 创建该任务。
这有效地将函数置于基于时间的循环中。
我尝试了几次迭代,但出现导入错误。但是能不能做呢?
【问题讨论】:
【参考方案1】:不,在任何情况下都是不可能的,因为它会在 django 中有效地产生循环导入问题。因为在任务中您必须导入该函数,而在该函数的文件中,您必须导入任务。
所以无论你采取什么策略,你都会陷入同样的问题。
【讨论】:
【参考方案2】:我做了类似的东西。你在找这个吗?
import threading
import time
def worker():
"""do your stuff"""
return
threads = list()
while (true):
time.sleep(300)
t = threading.Thread(target=worker)
threads.append(t)
t.start()
【讨论】:
是的,这可能达到目的,我也可以通过设置 cron 作业来完成,但我实际上对创建带有后台任务的循环感到好奇 @Rohit。您正在使用线程,因此您可以使用并行处理。我的意思是,您可以将此循环称为来自另一个函数的线程。以上是关于是否可以使用 django-background-task 将函数置于定时循环中的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 JavaScript 确定 GeoJSON 点是否在 GeoJSON 多边形内?
是否可以检查是否使用modernizr 启用了cookie?