2014-07-07 10 views
5

मैं सेलेरी 2.5.1 का उपयोग कर रहा हूं और मैं 20 सेकंड के बाद कार्य चलाने के लिए countdown का उपयोग करने का प्रयास कर रहा हूं, लेकिन इसे तुरंत निष्पादित किया जाता है।उलटी गिनती

DemoTask.apply_async(countdown = 20) 

Am मैं कुछ यहाँ याद आ रही:

मैं के रूप में यह उपयोग कर रहा हूँ?

+0

क्या आपको किसी भी मौके से 'CELERY_ALWAYS_EAGER = True' है? – Banana

+0

नहीं मैं नहीं हूं। मैंने 'CELERY_ALWAYS_EAGER = False' – Siddharth

+0

सेटिंग करने का भी प्रयास किया @ सिद्धार्थ उलटी गिनती' CELERY_ALWAYS_EAGER = True' के साथ काम नहीं करता है? आप सहजता से उसी व्यवहार की अपेक्षा करेंगे जो सिंक्रनाइज़ या असीमित रूप से चल रहा है, लेकिन ऐसा लगता है कि उलटी गिनती को नजरअंदाज कर दिया गया है:/मुझे यह बताते हुए कोई भी दस्तावेज नहीं मिल रहा है और कोड पढ़ने से स्पष्ट प्रतीत नहीं होता है। –

उत्तर

5

समस्या भारत की तरह सही समय पर होने की संभावना नहीं है। countdown=20 सेट करके आप सेलरी को 3 घंटे पहले 20 सेकंड के कार्य को निष्पादित करने के लिए कह रहे हैं।

मैं pytz library का उपयोग कर अजवाइन बताने के लिए सही समय पर काम शुरू करने के लिए सुझाव देते हैं:

from datetime import datetime, timedelta 
from pytz import timezone 

# Set timezone: http://en.wikipedia.org/wiki/List_of_tz_zones_by_name 
my_tz = timezone('US/Eastern') 

DemoTask.apply_async(eta=my_tz.localize(datetime.now()) + timedelta(seconds=20)) 

या और भी आसान आप Django उपयोग कर रहे हैं (और settings.py में TIME_ZONE निर्धारित किया है):

+0

एक समान मुद्दा था। ग्रीष्मकालीन बचत का समय समाप्त हो गया और अचानक हमारे उलटी गिनती को नजरअंदाज कर दिया गया ... – tschale

संबंधित मुद्दे