File tree Expand file tree Collapse file tree 1 file changed +22
-5
lines changed Expand file tree Collapse file tree 1 file changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -31,13 +31,30 @@ class CeleryBeat(t.TypedDict):
31
31
CeleryBeatSchedule = t .Dict [str , CeleryBeat ]
32
32
33
33
34
- def celery_beat_schedule (** beat_schedule : CeleryBeat ) -> CeleryBeatSchedule :
35
- """Create a beat schedule that's namespaced by the service it's in."""
34
+ class CeleryBeatScheduleBuilder (CeleryBeatSchedule ):
35
+ """Builds a celery beat schedule.
36
+
37
+ Examples:
38
+ ```
39
+ # settings.py
40
+ CELERY_BEAT_SCHEDULE = CeleryBeatScheduleBuilder(
41
+ every_5_minutes={
42
+ "task": "path.to.task",
43
+ "schedule": CeleryBeatScheduleBuilder.crontab(minute=5),
44
+ },
45
+ )
46
+ ```
47
+ """
48
+
49
+ # Shorthand for convenience.
50
+ crontab = crontab
51
+ solar = solar
36
52
37
- for beat in beat_schedule .values ():
38
- beat ["task" ] = namespace_task (beat ["task" ])
53
+ def __init__ (self , ** beat_schedule : CeleryBeat ):
54
+ for beat in beat_schedule .values ():
55
+ beat ["task" ] = namespace_task (beat ["task" ])
39
56
40
- return beat_schedule
57
+ super (). __init__ ( beat_schedule )
41
58
42
59
43
60
def namespace_task (task : t .Union [str , t .Callable ]):
You can’t perform that action at this time.
0 commit comments