Я пытаюсь использовать сельдерей == 3.1.25 (Python 2.7) для запуска некоторых дорогостоящих задач отдельно от моего основного приложения для фляжки.Однако, когда я запускаю работника сельдерея, используя celery -A run.celery worker --loglevel=info
, процесс завершается с:
[ERROR/MainProcess] Process 'Worker' exited with 'exitcode 1'
Вот моя файловая структура:
app/
__init__.py
celery_functions.py
routes.py
...
run.py
run.py:
from app import create_app
from app.config import Config
from celery import Celery
app = create_app('default')
app.app_context().push()
from app.routes import *
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
__ init__.py:
from flask import Flask
from flask_bootstrap import Bootstrap
from config import Config
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
bootstrap = Bootstrap(app)
return app
celery_functions.py:
import celery
@celery.task(name='celery_functions.archive_repo')
def archive_repo():
# do something
rout.py:
from celery_functions import *
@app.route('/archive', methods=['GET', 'POST'])
@login_required
def archive():
archive_repo.delay()
return ''