Django公司线程.开始()不工作thread.u还活着吗()返回FAL

2024-06-17 10:08:03 发布

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

就像标题中描述的,我的线程不工作。有关详细信息,请参阅以下代码:

在回调中调用的线程

def callback(request):
    response_data = {}
    code = request.GET.get('code', None)
    if code:
         response_data['code']= code
         thr = threading.Thread(target=request_token_Api, args=(request, code, response_data))
         thr.setDaemon(True)
         thr.start()
         value =thr.is_alive()
         print("Thread is Alive:",value)
         thr.join()
         return JsonResponse(response_data)

我正在调用的方法(request_token_Api)进行Oauth2令牌请求调用,但是当我检查thred.is_alive()时,返回值为False,而它应该为True,我不知道为什么。我试图在thread.start后面加上thread.run(),但是我得到了一条AttributeError消息。你知道吗

请求令牌Api方法

def request_token_Api(request, code, response_data):
    if request.method =='POST':
        url = "https://oauth2.api_token_request.com"
        params = {
            'grant_type': 'authorization_code',
            'client_id': API_KEY,
            'client_secret': SECRET_KEY,
            'code': code,
            'redirect_uri': URI
        }
        response = requests.get(url, params=params, verify=True)
        reponse= response.json()
        return reponse

Tags: tokenapitruedatagetifisresponse
1条回答
网友
1楼 · 发布于 2024-06-17 10:08:03

我怀疑request_token_Api在您有机会检查之前正在退出,因此线程已经完成。在request_token_Api中,仅当方法是“POST”时才执行某些操作,但在callback中,您将查看GETrequest属性,并确保在那里有值。所以这两件事可能永远不会同时发生

您应该更改何时调用request_token_Api的逻辑,或者更改当您在其中时希望保持的逻辑。但是如果您有一个有效的GET代码,那么您可能没有使用POST方法到达那里。你知道吗

相关问题 更多 >