Выполнение колбы-RQ2 с помощью супервизора - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть замечательное приложение Flask, которое использует flask-rq2 для запуска фоновых задач - все отлично работает локально, но у меня возникают проблемы, когда я пытаюсь перейти на работу.Все выполняется в виртуальной среде на сервере Ubuntu 18.04, и я запускаю приложение Flask с помощью gunicorn, управляемое с помощью supervisord.Приложение Flask работает нормально, но работники RQ запускаются и быстро выходят из строя со следующей ошибкой, из-за которой создается впечатление, что я нахожусь за пределами виртуальной среды.

KeyError: <flask.cli.ScriptInfo object at 0x7f2c8ca77828>
Traceback (most recent call last):
  File "/home/ceams_admin/ceams/venv/bin/flask", line 11, in <module>
    sys.exit(main())
  File "/home/ceams_admin/ceams/venv/lib/python3.6/site-packages/flask/cli.py", line 894, in main
    cli.main(args=args, prog_name=name)
  File "/home/ceams_admin/ceams/venv/lib/python3.6/site-packages/flask/cli.py", line 557, in main
    return super(FlaskGroup, self).main(*args, **kwargs)
  File "/home/ceams_admin/ceams/venv/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/ceams_admin/ceams/venv/lib/python3.6/site-packages/click/core.py", line 1132, in invoke
    cmd_name, cmd, args = self.resolve_command(ctx, args)
  File "/home/ceams_admin/ceams/venv/lib/python3.6/site-packages/click/core.py", line 1171, in resolve_command
    cmd = self.get_command(ctx, cmd_name)
  File "/home/ceams_admin/ceams/venv/lib/python3.6/site-packages/flask/cli.py", line 515, in get_command
    rv = info.load_app().cli.get_command(ctx, name)
  File "/home/ceams_admin/ceams/venv/lib/python3.6/site-packages/flask/cli.py", line 377, in load_app
    raise_if_not_found=False)
  File "/home/ceams_admin/ceams/venv/lib/python3.6/site-packages/flask/cli.py", line 254, in locate_app
    return find_best_app(script_info, module)
  File "/home/ceams_admin/ceams/venv/lib/python3.6/site-packages/flask/cli.py", line 76, in find_best_app
    app = call_factory(script_info, app_factory)
  File "/home/ceams_admin/ceams/venv/lib/python3.6/site-packages/flask/cli.py", line 114, in call_factory
    return app_factory(script_info)
  File "/home/ceams_admin/ceams/app/__init__.py", line 29, in create_app
    app.config.from_object(config[config_name])

Я попытался настроить файл конфигурации для супервизоранесколько разных способов, но в настоящее время решены следующие вопросы:

rq.conf

[program:rq]
directory=/home/ceams_admin/ceams
command=sh boot-workers.sh
process_name=%(program_name)s-%(process_num)s
numprocs=1
autostart=true
autorestart=true
stopsignal=TERM
stdout_logfile=/var/log/redis/redis_stdout.log
stderr_logfile=/var/log/redis/redis_stderr.log
stderr_logfile_maxbytes=10MB
stdout_logfile_maxbytes=10MB

, где boot-workers.sh:

#!/bin/bash
set -eu

. venv/bin/activate
flask rq worker

Любые предложения о том, каклучше отладить или как запустить rq было бы здорово!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...