Tôi có một ứng dụng cần khởi tạo Celery và các thứ khác (ví dụ: cơ sở dữ liệu). Tôi muốn có một tệp .ini có chứa cấu hình ứng dụng. Điều này sẽ được chuyển đến ứng dụng khi chạy.Đọc cấu hình Celery từ tệp thuộc tính Python
development.init:
[celery]
broker=amqp://localhost/
backend=amqp://localhost/
task.result.expires=3600
[database]
# database config
# ...
celeryconfig.py:
from celery import Celery
import ConfigParser
config = ConfigParser.RawConfigParser()
config.read(...) # Pass this from the command line somehow
celery = Celery('myproject.celery',
broker=config.get('celery', 'broker'),
backend=config.get('celery', 'backend'),
include=['myproject.tasks'])
# Optional configuration, see the application user guide.
celery.conf.update(
CELERY_TASK_RESULT_EXPIRES=config.getint('celery', 'task.result.expires')
)
# Initialize database, etc.
if __name__ == '__main__':
celery.start()
Để bắt đầu cần tây, tôi gọi:
celery worker --app=myproject.celeryconfig -l info
Liệu có cách nào để vượt qua trong tập tin cấu hình mà không làm một cái gì đó xấu xí như thiết lập một biến môi trường?
Trong phiên bản tiếp theo (3.1, trong git thạc sĩ), bạn cũng có thể thêm đối số dòng lệnh của riêng mình, mà có thể được sử dụng như là một thay thế cho envvars. – asksol
Xấu xí hay không, tôi đã tự hỏi điều tương tự như câu hỏi ban đầu, nhưng điều này không giúp trả lời nó. :(Mặc dù @ askol dẫn đầu là hữu ích. – shazow