У меня возникла проблема при попытке войти в систему с помощью uwsgi из консоли с помощью uwsgi.
Поэтому я запускаю свое приложение из консоли с помощью:
uwsgi --http :9090 --wsgi-file wsgi.py --master -p 4
Мой файл wsgy.py содержит:
from assets_generator import app as application
if __name__ == "__main__":
app.run()
и мое приложение выглядит так (внутри asset_generator.py):
from flask import Flask, render_template
app = Flask(__name__)
app.config.from_envvar('CONFIG')
from uwsgidecorators import thread
from worker import Worker
@thread
def _start_worker(item):
worker = Worker(item=item)
worker.run()
@app.route("/post-asset", methods=['GET', 'POST'])
def post_asset():
from flask import request
_start_worker(request.values)
return "OK", 200
Класс выполнения рабочего вызывает метод преобразования:
class Worker(object):
def __init__(self, item):
super(Worker, self).__init__()
self.item = item
def run(self):
with app.app_context():
# prepare stuff for convertion, fill urls etc....
details = self.convert(
name=self.item.get('name'),
source_url=self.item.get('source_url'),
conversion_format=self.item.get('format'),
default_options=default_options
)
и методы convert вызывают url:
def convert(self, name, source_url, conversion_format, default_options):
try:
print "before requests " + source_url # THIS PRINT WORKS
r = requests.get(source_url)
print "after requests" # THIS ONE DOESN'T
# do other stuff, prints doesn't work
except Exception as e:
print " Error"
raise e
finally:
print "finally" # DOESN'T PRINT
if zip_extract_path:
shutil.rmtree(zip_extract_path)
print "before returning None" # DOESN'T PRINT
return None
Моя проблема в том, что я могу увидеть первый отпечаток в журналах консоли uwsgi, но второй фактически никогда не происходит, и любые другие отпечатки, которые идут после этого запросавызов никогда не происходит.
Я проверил вручную, чтобы сделать
r = requests.get(source_url)
с правильным URL-адресом от места, где выполняется это приложение uwsgi, и запросы фактически выполняются и возвращаются OK.
Я немного озадачен, почему мои отпечатки перестают работать. Если кто-нибудь поймет это, это будет с радостью оценено.