Django:即使发出其他请求,视图中的函数也能连续运行吗?

Django:即使发出其他请求,视图中的函数也能连续运行吗?,django,Django,我正在尝试创建一个函数,当调用该函数时,它将以不规则(且未定义)的间隔从外部源提取信息。然后,这些数据将被放入数据库中,以便以后检索。我希望这是在后台运行,即使其他页面请求。这是可能的吗?在请求/响应周期之外运行Django函数的最佳方法是将其实现为,然后可以使用cron将其设置为定期运行 如果你已经在使用它,但这需要,这可能是一个头痛。芹菜还支持长时间运行的任务(在视图中开始,但在自己的时间内完成),如问题标题中所述。由于您似乎需要在加载页面时调用该函数,您可以将其作为 def my_view

我正在尝试创建一个函数,当调用该函数时,它将以不规则(且未定义)的间隔从外部源提取信息。然后,这些数据将被放入数据库中,以便以后检索。我希望这是在后台运行,即使其他页面请求。这是可能的吗?

在请求/响应周期之外运行Django函数的最佳方法是将其实现为,然后可以使用
cron
将其设置为定期运行


如果你已经在使用它,但这需要,这可能是一个头痛。芹菜还支持长时间运行的任务(在视图中开始,但在自己的时间内完成),如问题标题中所述。

由于您似乎需要在加载页面时调用该函数,您可以将其作为

def my_view(request):
    #Call the long running function
    long_running_function()
    #Do view logic and return
    return HttpResponse(...)
要处理
long\u running\u函数
,您可以使用
芹菜
,并创建一个
tasks.py
,它实现您的外部数据源逻辑。总结了创建任务、添加到队列和配置芹菜

如果您只是需要一个更简单的解决方案来尝试它,请查看该模块


这里有一个非常相似的答案

这肯定是可能的,但您可能想提供更多信息。。。为什么要在一个视图中运行此函数。。。您试图用这种方法解决的问题是什么?谢谢您的回复。我是django的新手,我不知道您可以在视图之外运行函数。那样的话,你会怎么称呼他们?编辑:实际上,它最好在视图中运行,这样我就可以通过http请求调用它。如果它是一个函数,您可以从任何Python代码调用它,您只需导入模块,然后调用module.yourfn()为什么从HTTP请求调用更好?上下文是什么?加载页面时,需要实例化与外部数据源的连接,所以我想有必要把它放在一个视野内?非常感谢-‘芹菜’看起来非常适合这个。谢谢-我要试试‘芹菜’-它看起来会完全满足我的需要。