flask - 从父文件夹启动 Celery Worker 时出错
问题描述
我正在尝试在 Heroku 上部署我的 Flask 项目,但是我在从src
.
我的 Flaskproject
有以下树:
.project
├── Procfile
├── README.md
├── requirements.txt
└── src
├── app.py
├── blueprints
│ ├── __init__.py
│ ├── error_pages.py
│ └── profile.py
├── static
│ └── ...
└── templates
└── ...
在 app.py 我有:
from flask import Flask
from celery import Celery
import blueprints
app = Flask(__name__)
# Load the config file
app.config.from_pyfile('config.cfg')
# Initialises celery background tasks handler
celery = Celery(main=app.name, backend=app.config['REDIS_URL'], broker=app.config['REDIS_URL'],
include=['blueprints.profile'])
celery.conf.update(app.config)
app.celery = celery
如果我在.project/src
并且我使用:
celery -A app.celery worker -l INFO
我的工人开始时没有问题。但是,例如,我无法弄清楚如何从根目录启动我的工作人员。
这就是我的 Procfile 现在的样子。
web: gunicorn --chdir ./src app:app
worker: celery -A ??????
有什么想法吗?
解决方案
我认为您应该使用该代码:
celery -A src.app.celery_file worker --loglevel=debug -B
(-B:用于 Beat)Celery 配置示例:
from celery import Celery
celery = Celery(__name__)
celery = Celery('tasks', broker=) # rabbit,redis, ..
celery.conf.update({'CELERY_ACCEPT_CONTENT': ['pickle', 'json', 'msgpack', 'yaml']})
celery.conf.add_defaults(...)
celery.conf.update(CELERYBEAT_SCHEDULE={
'db_connect_things': {
'task': 'application.lib.tasks.db_connect_things',
'schedule': crontab(minute=0, hour='*/12'),
}})
class ContextTask(celery.Task):
...
推荐阅读
- ssis - SSIS - RabbitMQ 源丢失消息 (KingswaySoft)
- android - 如何为 ArrayList 创建可点击(初始化未点击)适配器
在 Android Studio 中? - node.js - node npm 命令立即关闭命令提示符
- php - php strtotime '第三天 + 1 个月' = false
- r - 如何解决 r 中弹性包中的“curl 中的错误:Broken pipe”
- javascript - 如何将 Dialog 组件添加到 BottomNavigation
- data-vault - Data Vault 将多个集线器连接成链接,是使用一个链接的最佳方式,还是拆分链接始终是 Data Vault 中的好方法?
- javascript - 我们如何一个一个地提取数字?
- html - 如何为html中的链接配置嵌套路径
- javascript - 下拉单击禁用悬停并在悬停时触发 JS 功能