Ошибка Gunicorn с запущенным сервером python eve - PullRequest
2 голосов
/ 14 июля 2020

Я использую API, написанный на python и развернутый на сервере Eve. Далее я пытаюсь запустить Gunicorn (продакшн). Я выполнил команду gunicorn wsgi:app --preload -w 4 -b 0.0.0.0:7000, и она работает должным образом. Кроме того, когда мы запускаем эту команду, мы должны нажать Ctrl+s, чтобы рабочие начали запускать тот же код. Вопрос уже был задан рабочим, ожидающим неопределенно долгое время, чтобы начать работу, используя опцию предварительной загрузки. Однако я хотел убрать опцию предварительной нагрузки. Итак, когда я запускаю gunicorn wsgi:app -w 4 -b 0.0.0.0:7000, я получаю сообщение об ошибке.

 Use a production WSGI server instead.
 * Debug mode: off
 * Serving Flask app "eve" (lazy loading)
 * Environment: production
 WARNING: This is a development server. Do not use it in a production deployment.
[2020-07-14 14:26:40 +0530] [23780] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
worker.init_process()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process
self.load_wsgi()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
self.wsgi = self.app.wsgi()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
return self.load_wsgiapp()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
return util.import_app(self.app_uri)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app
mod = importlib.import_module(module)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/root/Improved_ec/v2/improved_easy_credit/wsgi.py", line 4, in <module>
app.run(host='0.0.0.0')
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/eve/flaskapp.py", line 222, in run
super(Eve, self).run(host, port, debug, **options)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/flask/app.py", line 990, in run
run_simple(host, port, self, **options)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/werkzeug/serving.py", line 1010, in run_simple
inner()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/werkzeug/serving.py", line 963, in inner
fd=fd,
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/werkzeug/serving.py", line 806, in make_server
host, port, app, request_handler, passthrough_errors, ssl_context, fd=fd
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/werkzeug/serving.py", line 699, in __init__
HTTPServer.__init__(self, server_address, handler)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/socketserver.py", line 452, in __init__
self.server_bind()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/http/server.py", line 137, in server_bind
socketserver.TCPServer.server_bind(self)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/socketserver.py", line 466, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use
[2020-07-14 14:26:40 +0530] [23797] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
worker.init_process()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process
self.load_wsgi()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
self.wsgi = self.app.wsgi()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
return self.load_wsgiapp()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
return util.import_app(self.app_uri)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app
mod = importlib.import_module(module)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/root/Improved_ec/v2/improved_easy_credit/wsgi.py", line 4, in <module>
app.run(host='0.0.0.0')
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/eve/flaskapp.py", line 222, in run
super(Eve, self).run(host, port, debug, **options)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/flask/app.py", line 990, in run
run_simple(host, port, self, **options)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/werkzeug/serving.py", line 1010, in run_simple
inner()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/werkzeug/serving.py", line 963, in inner
fd=fd,
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/werkzeug/serving.py", line 806, in make_server
host, port, app, request_handler, passthrough_errors, ssl_context, fd=fd
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/werkzeug/serving.py", line 699, in __init__
HTTPServer.__init__(self, server_address, handler)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/socketserver.py", line 452, in __init__
self.server_bind()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/http/server.py", line 137, in server_bind
socketserver.TCPServer.server_bind(self)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/socketserver.py", line 466, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use
[2020-07-14 14:26:40 +0530] [23780] [INFO] Worker exiting (pid: 23780)
[2020-07-14 14:26:40 +0530] [23797] [INFO] Worker exiting (pid: 23797)
[2020-07-14 14:26:40 +0530] [23796] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
worker.init_process()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process
self.load_wsgi()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
self.wsgi = self.app.wsgi()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
return self.load_wsgiapp()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
return util.import_app(self.app_uri)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app
mod = importlib.import_module(module)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/root/Improved_ec/v2/improved_easy_credit/wsgi.py", line 4, in <module>
app.run(host='0.0.0.0')
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/eve/flaskapp.py", line 222, in run
super(Eve, self).run(host, port, debug, **options)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/flask/app.py", line 990, in run
run_simple(host, port, self, **options)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/werkzeug/serving.py", line 1010, in run_simple
inner()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/werkzeug/serving.py", line 963, in inner
fd=fd,
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/werkzeug/serving.py", line 806, in make_server
host, port, app, request_handler, passthrough_errors, ssl_context, fd=fd
File "/root/anaconda3/envs/imp_ec/lib/python3.7/site-packages/werkzeug/serving.py", line 699, in __init__
HTTPServer.__init__(self, server_address, handler)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/socketserver.py", line 452, in __init__
self.server_bind()
File "/root/anaconda3/envs/imp_ec/lib/python3.7/http/server.py", line 137, in server_bind
socketserver.TCPServer.server_bind(self)
File "/root/anaconda3/envs/imp_ec/lib/python3.7/socketserver.py", line 466, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use
[2020-07-14 14:26:40 +0530] [23796] [INFO] Worker exiting (pid: 23796)
[2020-07-14 14:27:10 +0530] [23776] [INFO] Shutting down: Master
[2020-07-14 14:27:10 +0530] [23776] [INFO] Reason: Worker failed to boot.

Более того, когда я удаляю `-w ', сервер запускается, как ожидалось, с одним рабочим.

Итак, как мне исправить эту ошибку с воркерами?

...