簡體   English   中英

requests.get 到 localhost 超時

[英]requests.get to localhost is timing out

我正在嘗試從一個處理程序到另一個處理程序執行 http 請求,但它超時了。 為什么? 使用請求庫有效但不適用於 127.0.0.1

# sample.py
import falcon
import json
import requests

class TS:
    def on_get(self, req, resp):
        output = {
            'output': 'DataService.',
            'author': 'Python3'
        }
        resp2 = requests.get('http://127.0.0.1:8000/a')
        resp.body = json.dumps(output)
        resp.status = falcon.HTTP_200

class SE:
    def on_get(self, req, resp):
        output = {
            'output': 'Service.',
            'author': 'Python3'
        }

        resp.body = json.dumps(output)

api = falcon.API()
api.add_route('/a', SE())
api.add_route('/t', TS())

我收到這個錯誤日志

[2017-02-02 20:41:05 +0100] [27515] [CRITICAL] WORKER TIMEOUT (pid:27544)

您可能正在從命令行使用gunicorn運行它,如教程中所示:

$ gunicorn sample:api

這意味着 gunicorn 以一個工作進程的默認值啟動,該進程是一個帶有一個線程同步工作線程

此設置一次只能處理一個請求,任何進一步的請求都將阻塞,直到前一個請求完成。 因此,如果您嘗試從應用程序內部向同一服務器發出請求,則會出現死鎖。

為此,您可以增加工作進程和線程的數量,例如:

$ gunicorn --workers 2 --threads 4 sample:api

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM