@@ -75,25 +75,25 @@ def on_error(self, error: Exception) -> None:
75
75
self .on_error_sentry_hook (error )
76
76
interactions .Client .default_error_handler ("Task" , error )
77
77
78
- async def __call__ (self ) -> None :
78
+ async def __call__ (self , * args , ** kwargs ) -> None :
79
79
try :
80
80
if inspect .iscoroutinefunction (self .callback ):
81
- val = await self .callback ()
81
+ val = await self .callback (* args , ** kwargs )
82
82
else :
83
- val = self .callback ()
83
+ val = self .callback (* args , ** kwargs )
84
84
85
85
if isinstance (val , BaseTrigger ):
86
86
self .reschedule (val )
87
87
except Exception as e :
88
88
self .on_error (e )
89
89
90
- def _fire (self , fire_time : datetime ) -> None :
90
+ def _fire (self , fire_time : datetime , * args , ** kwargs ) -> None :
91
91
"""Called when the task is being fired."""
92
92
self .trigger .set_last_call_time (fire_time )
93
- _ = asyncio .create_task (self ())
93
+ _ = asyncio .create_task (self (* args , ** kwargs ))
94
94
self .iteration += 1
95
95
96
- async def _task_loop (self ) -> None :
96
+ async def _task_loop (self , * args , ** kwargs ) -> None :
97
97
"""The main task loop to fire the task at the specified time based on triggers configured."""
98
98
while not self ._stop .is_set ():
99
99
fire_time = self .trigger .next_fire ()
@@ -106,14 +106,14 @@ async def _task_loop(self) -> None:
106
106
if future in done :
107
107
return None
108
108
109
- self ._fire (fire_time )
109
+ self ._fire (fire_time , * args , ** kwargs )
110
110
111
- def start (self ) -> None :
111
+ def start (self , * args , ** kwargs ) -> None :
112
112
"""Start this task."""
113
113
try :
114
114
self .trigger .reschedule ()
115
115
self ._stop .clear ()
116
- self .task = asyncio .create_task (self ._task_loop ())
116
+ self .task = asyncio .create_task (self ._task_loop (* args , ** kwargs ))
117
117
except RuntimeError :
118
118
get_logger ().error (
119
119
"Unable to start task without a running event loop! We recommend starting tasks within an `on_startup` event."
@@ -125,10 +125,10 @@ def stop(self) -> None:
125
125
if self .task :
126
126
self .task .cancel ()
127
127
128
- def restart (self ) -> None :
128
+ def restart (self , * args , ** kwargs ) -> None :
129
129
"""Restart this task."""
130
130
self .stop ()
131
- self .start ()
131
+ self .start (* args , ** kwargs )
132
132
133
133
def reschedule (self , trigger : BaseTrigger ) -> None :
134
134
"""
0 commit comments