Skip to content

Commit dbef009

Browse files
committed
feat: add optional update_schedule method for ScheduleSource
1 parent 0e2e729 commit dbef009

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

docs/examples/extending/schedule_source.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ async def get_schedules(self) -> List["ScheduledTask"]:
2727
async def add_schedule(self, schedule: "ScheduledTask") -> None:
2828
print("New schedule added:", schedule)
2929

30+
# This method is optional. You may not implement this.
31+
# It's just a helper to people to be able to interact with your source.
32+
async def update_schedule(self, schedule: "ScheduledTask") -> None:
33+
print("Updating schedule:", schedule.schedule_id)
34+
3035
# This method is completely optional, but if you want to support
3136
# schedule cancelation, you must implement it.
3237
async def delete_schedule(self, schedule_id: str) -> None:

taskiq/abc/schedule_source.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,29 @@ async def add_schedule(
4242
f"The source {self.__class__.__name__} does not support adding schedules.",
4343
)
4444

45+
async def update_schedule(
46+
self,
47+
schedule: "ScheduledTask",
48+
) -> None:
49+
"""
50+
Update an existing schedule.
51+
52+
This function is used to update existing schedules.
53+
It's a convenient helper for people who want to update schedules
54+
for the current source.
55+
56+
As an example, if your source works with a database,
57+
you may want to update existing rows in the table.
58+
59+
Note that this function may do nothing.
60+
61+
:param schedule: schedule to update.
62+
"""
63+
raise NotImplementedError(
64+
f"The source {self.__class__.__name__} does "
65+
"not support updating schedules.",
66+
)
67+
4568
async def delete_schedule(self, schedule_id: str) -> None:
4669
"""
4770
Method to delete schedule by id.

0 commit comments

Comments
 (0)