55from warnings import warn
66
77from anyjson import deserialize , serialize
8+ from celery import current_app
89from celery import schedules
910from celery .beat import Scheduler , ScheduleEntry
1011from celery .utils .encoding import safe_str , safe_repr
1516
1617from .models import (PeriodicTask , PeriodicTasks ,
1718 CrontabSchedule , IntervalSchedule )
18- from .utils import DATABASE_ERRORS , now
19+ from .utils import DATABASE_ERRORS
1920
2021# This scheduler must wake up more frequently than the
2122# regular of 5 minutes because it needs to take external
@@ -29,6 +30,7 @@ class ModelEntry(ScheduleEntry):
2930 save_fields = ["last_run_at" , "total_run_count" , "no_changes" ]
3031
3132 def __init__ (self , model ):
33+ self .app = current_app ._get_current_object ()
3234 self .name = model .name
3335 self .task = model .task
3436 self .schedule = model .schedule
@@ -59,10 +61,10 @@ def is_due(self):
5961 return self .schedule .is_due (self .last_run_at )
6062
6163 def _default_now (self ):
62- return now ()
64+ return self . app . now ()
6365
6466 def next (self ):
65- self .model .last_run_at = now ()
67+ self .model .last_run_at = self . app . now ()
6668 self .model .total_run_count += 1
6769 self .model .no_changes = True
6870 return self .__class__ (self .model )
@@ -158,7 +160,7 @@ def schedule_changed(self):
158160 except DATABASE_ERRORS , exc :
159161 warn (RuntimeWarning ("Database gave error: %r" % (exc , )))
160162 return False
161- self ._last_timestamp = now ()
163+ self ._last_timestamp = self . app . now ()
162164 return True
163165
164166 def reserve (self , entry ):
@@ -207,7 +209,7 @@ def install_default_entries(self, data):
207209 if self .app .conf .CELERY_TASK_RESULT_EXPIRES :
208210 entries .setdefault ("celery.backend_cleanup" , {
209211 "task" : "celery.backend_cleanup" ,
210- "schedule" : schedules .crontab ("0" , "4" , "*" , nowfun = now ),
212+ "schedule" : schedules .crontab ("0" , "4" , "*" ),
211213 "options" : {"expires" : 12 * 3600 }})
212214 self .update_from_dict (entries )
213215
0 commit comments