मेरे पास एक ऐसा एप्लिकेशन है जिसे सेलेरी और अन्य चीजों को प्रारंभ करने की आवश्यकता है (उदा। डेटाबेस)। मैं एक .ini फ़ाइल रखना चाहता हूं जिसमें अनुप्रयोग कॉन्फ़िगरेशन होगा। इसे रनटाइम पर एप्लिकेशन को पास किया जाना चाहिए।पायथन गुण फ़ाइल से सेलेरी कॉन्फ़िगरेशन पढ़ें
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()
अजवाइन शुरू करने के लिए, मैं फोन:
celery worker --app=myproject.celeryconfig -l info
वहाँ बिना कॉन्फ़िग फ़ाइल में पारित करने के लिए है वैसे भी पर्यावरण चर सेट करने की तरह कुछ बदसूरत कर रहे हैं?
अगले संस्करण में आप भी अपने खुद के कमांड लाइन तर्क, जोड़ सकते हैं जो envvars के विकल्प के रूप में इस्तेमाल किया जा सकता है। – asksol
बदसूरत या नहीं, मैं मूल प्रश्न के समान ही सोच रहा था, लेकिन इससे इसका उत्तर देने में मदद नहीं मिलती है। :(हालांकि @ askol की लीड सहायक है। – shazow