diff --git a/src/pydase/task/decorator.py b/src/pydase/task/decorator.py index 224e119..58c7d9f 100644 --- a/src/pydase/task/decorator.py +++ b/src/pydase/task/decorator.py @@ -26,6 +26,6 @@ def task( logger.info("Task '%s' was cancelled", func.__name__) return None - return Task(wrapper) + return Task(wrapper, autostart=autostart) return decorator diff --git a/src/pydase/task/task.py b/src/pydase/task/task.py index 9242145..9c07b10 100644 --- a/src/pydase/task/task.py +++ b/src/pydase/task/task.py @@ -41,6 +41,8 @@ class Task(pydase.DataService, Generic[P, R]): self, func: Callable[Concatenate[Any, P], Coroutine[None, None, R | None]] | Callable[P, Coroutine[None, None, R | None]], + *, + autostart: bool = False, ) -> None: super().__init__() self._func_name = func.__name__ @@ -53,6 +55,8 @@ class Task(pydase.DataService, Generic[P, R]): self._task: asyncio.Task[R] | None = None self._status = TaskStatus.NOT_RUNNING self._result: R | None = None + if autostart: + self.start() @property def status(self) -> TaskStatus: