Skip to content

Commit d78ba7a

Browse files
maciej-golMaciej Gol
and
Maciej Gol
authored
Make list (#883)
Co-authored-by: Maciej Gol <[email protected]>
1 parent e645262 commit d78ba7a

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

django_celery_beat/schedulers.py

+17-6
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,22 @@ def setup_schedule(self):
263263
def all_as_schedule(self):
264264
debug('DatabaseScheduler: Fetching database schedule')
265265
s = {}
266+
for model in self.enabled_models():
267+
try:
268+
s[model.name] = self.Entry(model, app=self.app)
269+
except ValueError:
270+
pass
271+
return s
272+
273+
def enabled_models(self):
274+
"""Return list of enabled periodic tasks.
275+
276+
Allows overriding how the list of periodic tasks is fetched without
277+
duplicating the filtering/querying logic.
278+
"""
279+
return list(self.enabled_models_qs())
280+
281+
def enabled_models_qs(self):
266282
next_schedule_sync = now() + datetime.timedelta(
267283
seconds=SCHEDULE_SYNC_MAX_INTERVAL
268284
)
@@ -277,12 +293,7 @@ def all_as_schedule(self):
277293
exclude_query = exclude_clock_tasks_query | exclude_cron_tasks_query
278294

279295
# Fetch only the tasks we need to consider
280-
for model in self.Model.objects.enabled().exclude(exclude_query):
281-
try:
282-
s[model.name] = self.Entry(model, app=self.app)
283-
except ValueError:
284-
pass
285-
return s
296+
return self.Model.objects.enabled().exclude(exclude_query)
286297

287298
def _get_crontab_exclude_query(self):
288299
"""

0 commit comments

Comments
 (0)