requests.get 本地主机超时
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 以 one worker process which is a sync worker with one thread 的默认值启动。
此设置一次只能处理一个请求,任何进一步的请求都将阻塞,直到前一个请求完成。因此,如果您尝试从您的应用程序内部向同一台服务器发出请求,您将遇到死锁。
为此,您可以增加工作进程和线程的数量,例如:
$ gunicorn --workers 2 --threads 4 sample:api
我正在尝试从一个处理程序向另一个处理程序发出 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 以 one worker process which is a sync worker with one thread 的默认值启动。
此设置一次只能处理一个请求,任何进一步的请求都将阻塞,直到前一个请求完成。因此,如果您尝试从您的应用程序内部向同一台服务器发出请求,您将遇到死锁。
为此,您可以增加工作进程和线程的数量,例如:
$ gunicorn --workers 2 --threads 4 sample:api