Skip to content

Commit 8e0811b

Browse files
authored
Added API for registering tasks programmatically. (#204)
1 parent 4b8f015 commit 8e0811b

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

taskiq/abc/broker.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,28 @@ def inner(
346346
inner_labels=labels or {},
347347
)
348348

349+
def register_task(
350+
self,
351+
func: Callable[_FuncParams, _ReturnType],
352+
task_name: Optional[str] = None,
353+
**labels: Any,
354+
) -> AsyncTaskiqDecoratedTask[_FuncParams, _ReturnType]:
355+
"""
356+
API for registering tasks programmatically.
357+
358+
This function is basically the same as `task` decorator,
359+
but it doesn't decorate function, it just registers it
360+
and returns AsyncTaskiqDecoratedTask object, that can
361+
be called later.
362+
363+
:param func: function to register.
364+
:param task_name: custom name of a task, defaults to qualified function's name.
365+
:param labels: some addition labels for task.
366+
367+
:returns: registered task.
368+
"""
369+
return self.task(task_name=task_name, **labels)(func)
370+
349371
def on_event(self, *events: TaskiqEvents) -> Callable[[EventHandler], EventHandler]:
350372
"""
351373
Adds event handler.

0 commit comments

Comments
 (0)