Python 3.x flask socketIO应用程序,带有gunicorn和eventlet,在AWS Elastic beanstalk上运行

Python 3.x flask socketIO应用程序,带有gunicorn和eventlet,在AWS Elastic beanstalk上运行,python-3.x,flask,socket.io,gunicorn,eventlet,Python 3.x,Flask,Socket.io,Gunicorn,Eventlet,在开发模式下,我的应用程序在没有gunicorn和eventlet的情况下运行良好。 使用命令:python3application.py一切运行正常。 当我使用gunicorn--worker class eventlet-w 1 application:application运行应用程序时,有些函数根本不起作用。该应用程序仍然可以正常工作,但我无法调用AWS服务、使用SMTP库发送电子邮件或使用请求库等。这些问题仅在eventlet/gunicorn中出现,而在socketio.run(应用

在开发模式下,我的应用程序在没有gunicorn和eventlet的情况下运行良好。 使用命令:
python3application.py
一切运行正常。 当我使用
gunicorn--worker class eventlet-w 1 application:application
运行应用程序时,有些函数根本不起作用。该应用程序仍然可以正常工作,但我无法调用AWS服务、使用SMTP库发送电子邮件或使用请求库等。这些问题仅在eventlet/gunicorn中出现,而在
socketio.run(应用程序)
中不会出现

当我使用
gunicorn--worker class eventlet-w 1 application:application运行我的应用程序时,我得到:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/geventlet.py", line 99, in init_process
    super().init_process()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 119, in init_process
    self.load_wsgi()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
    return self.load_wsgiapp()
  File "/usr/local/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/usr/local/lib/python3.6/site-packages/gunicorn/util.py", line 358, in import_app
    mod = importlib.import_module(module)
  File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/ec2-user/environment/cognito/application.py", line 15, in <module>
    JWKS = requests.get(JWKS_URL).json()["keys"]
  File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 440, in send
    timeout=timeout
  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 346, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 850, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 314, in connect
    cert_reqs=resolve_cert_reqs(self.cert_reqs),
  File "/usr/local/lib/python3.6/site-packages/urllib3/util/ssl_.py", line 269, in create_urllib3_context
    context.options |= options
  File "/usr/lib64/python3.6/ssl.py", line 465, in options
    super(SSLContext, SSLContext).options.__set__(self, value)
  File "/usr/lib64/python3.6/ssl.py", line 465, in options
    super(SSLContext, SSLContext).options.__set__(self, value)
  File "/usr/lib64/python3.6/ssl.py", line 465, in options
    super(SSLContext, SSLContext).options.__set__(self, value)
  [Previous line repeated 317 more times]
RecursionError: maximum recursion depth exceeded while calling a Python object
没有gunicorn/eventlet,一切都正常。因此,我创建了一个没有WebSocket的简单测试应用程序。问题仍然存在。应用程序可以使用
flask run
命令正常运行,但当我使用Gunicorn命令运行应用程序时,一些功能就不起作用了

File "/home/vasudeva/Codes/sanskrit/application.py", line 2115, in recover
    if util.sendemail(user.email, code):
  File "/home/vasudeva/Codes/sanskrit/util.py", line 112, in sendemail
    server = smtplib.SMTP(HOST, PORT)
  File "/usr/lib/python3.7/smtplib.py", line 251, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python3.7/smtplib.py", line 336, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python3.7/smtplib.py", line 307, in _get_socket
    self.source_address)
  File "/home/vasudeva/Codes/sanskrit/env/lib/python3.7/site-packages/eventlet/green/socket.py", line 44, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "/home/vasudeva/Codes/sanskrit/env/lib/python3.7/site-packages/eventlet/support/greendns.py", line 517, in getaddrinfo
    qname, addrs = _getaddrinfo_lookup(host, family, flags)
  File "/home/vasudeva/Codes/sanskrit/env/lib/python3.7/site-packages/eventlet/support/greendns.py", line 490, in _getaddrinfo_lookup
    raise err
  File "/home/vasudeva/Codes/sanskrit/env/lib/python3.7/site-packages/eventlet/support/greendns.py", line 479, in _getaddrinfo_lookup
    answer = resolve(host, qfamily, False, use_network=use_network)
  File "/home/vasudeva/Codes/sanskrit/env/lib/python3.7/site-packages/eventlet/support/greendns.py", line 432, in resolve
    raise EAI_EAGAIN_ERROR
  File "/home/vasudeva/Codes/sanskrit/env/lib/python3.7/site-packages/eventlet/support/greendns.py", line 479, in _getaddrinfo_lookup
    answer = resolve(host, qfamily, False, use_network=use_network)
  File "/home/vasudeva/Codes/sanskrit/env/lib/python3.7/site-packages/eventlet/support/greendns.py", line 432, in resolve
    raise EAI_EAGAIN_ERROR
socket.gaierror: [Errno -3] Lookup timed out