Skip to main content
 首页 » 编程设计

python之Django 如何停止函数的执行

2025年02月15日25三少

我正在尝试通过 Ajax 调用 python 函数。我想停止执行该功能。我试图刷新页面,但它并没有停止。当我停止 Django 服务器时,它就会停止。

这里有一些代码:This Call 调用 HTTP 请求

class ScrapData(): 
 
    @classmethod 
    def search_status(self, urls_list): 
      for url in urls_list: 
            r = requests.get(url) 
            text = r.text 
            #... 
 
      return 1 

通过 Ajax 调用这个 View

class SearchData(View): 
 
    def get(self, request, *args, **kwargs): 
        urls_list = []; 
        response = ScrapData().search_status(urls_list) 
 
        return HttpResponse(response) 

我想停止这个功能。我怎样才能做到这一点?谢谢

请您参考如下方法:

这个 Django 应用程序是如何提供服务的?有多少个进程和线程?您如何知道哪个线程运行特定请求?有几种 Python 方法可以处理这个问题,但它不像“停止特定请求”那么简单。

在我看来,在管理、可扩展性和 self 健全方面处理长轮询任务的最佳方法是使用像 Celery 这样的工具。还有一个专用的SO question on how to revoke a Celery task .

Django Channels 是解决这个问题的另一种新方法,但在可以使用它而不是 Celery 之前它需要更多的开发。