मैं django-celery के व्यवस्थापक इंटरफ़ेस का उपयोग करके अजवाइन के लिए आवधिक कार्य बनाना चाहता हूं। मेरे पास एक कार्य सेट अप है जो मैन्युअल रूप से या स्क्रिप्ट द्वारा कॉल किए जाने पर बहुत अच्छा चलता है। यह सिर्फ सेलेरीबीट के माध्यम से काम नहीं करता है। डीबग लॉग के अनुसार कार्य को पहले पुनर्प्राप्ति पर enabled = False
पर सेट किया गया है और मुझे आश्चर्य है कि क्यों।सेलेरीबीट स्वचालित रूप से आवधिक कार्य को अक्षम करता है
आवधिक कार्य जोड़ते समय और [1, False]
को स्थितित्मक तर्क के रूप में पास करते समय, कार्य स्वचालित रूप से अक्षम हो जाता है और मुझे कोई और आउटपुट दिखाई नहीं देता है। तर्क के बिना जोड़े जाने पर कार्य निष्पादित किया जाता है लेकिन तत्काल अपवाद उठाता है क्योंकि मैंने आवश्यक तर्क (समझ में नहीं आता) की आपूर्ति नहीं की है।
क्या कोई यहां देखता है कि समस्या क्या है?
अग्रिम धन्यवाद।
यह आपूर्ति तर्क के बाद उत्पादन होता है:
[DEBUG/Beat] SELECT "djcelery_periodictask"."id", [...]
FROM "djcelery_periodictask"
WHERE "djcelery_periodictask"."enabled" = true ; args=(True,)
[DEBUG/Beat] SELECT "djcelery_intervalschedule"."id", [...]
FROM "djcelery_intervalschedule"
WHERE "djcelery_intervalschedule"."id" = 3 ; args=(3,)
[DEBUG/Beat] SELECT (1) AS "a"
FROM "djcelery_periodictask"
WHERE "djcelery_periodictask"."id" = 3 LIMIT 1; args=(3,)
[DEBUG/Beat] UPDATE "djcelery_periodictask"
SET "name" = E'<taskname>', "task" = E'<task.module.path>',
"interval_id" = 3, "crontab_id" = NULL,
"args" = E'[1, False,]', "kwargs" = E'{}', "queue" = NULL,
"exchange" = NULL, "routing_key" = NULL,
"expires" = NULL, "enabled" = false,
"last_run_at" = E'2011-05-25 00:45:23.242387', "total_run_count" = 9,
"date_changed" = E'2011-05-25 09:28:06.201148'
WHERE "djcelery_periodictask"."id" = 3;
args=(
u'<periodic-task-name>', u'<task.module.path>',
3, u'[1, False,]', u'{}',
False, u'2011-05-25 00:45:23.242387', 9,
u'2011-05-25 09:28:06.201148', 3
)
[DEBUG/Beat] Current schedule:
<ModelEntry: celery.backend_cleanup celery.backend_cleanup(*[], **{}) {<crontab: 0 4 * (m/h/d)>}
[DEBUG/Beat] Celerybeat: Waking up in 5.00 seconds.
संपादित करें: यह निम्न सेटिंग के साथ काम करता है। मुझे अभी भी पता नहीं है कि यह django-celery के साथ क्यों काम नहीं करता है।
CELERYBEAT_SCHEDULE = {
"example": {
"task": "<task.module.path>",
"schedule": crontab(),
"args": (1, False)
},
}
आप अपने कार्य को और periodictask विन्यास पोस्ट कर सकते हैं? –
मेरी समस्या के बारे में देखने के लिए धन्यवाद। मैंने 'CELERYBEAT_SCHEDULE' सेट नहीं किया क्योंकि मैंने इसके बजाय django-celery के प्रशासन का उपयोग किया था। मैंने [एफएक्यू] (http://docs.celeryproject.org/en/latest/faq.html#why-won-t-my-task-run) की भी जांच की लेकिन जैसा कि मैंने मूल पोस्टिंग में कहा था, मैं हूं मैन्युअल रूप से खोल से कार्य लॉन्च करने में सक्षम। क्या मैं कुछ और अनदेखा कर सकता था? – jnns
एक ही समस्या है ... कोई समाधान? – Aldarund