2323from taskiq .exceptions import SendTaskError
2424from taskiq .labels import prepare_label
2525from taskiq .message import TaskiqMessage
26+ from taskiq .queue import DEFAULT_QUEUE , Queue
2627from taskiq .scheduler .created_schedule import CreatedSchedule
2728from taskiq .scheduler .scheduled_task import CronSpec , ScheduledTask
2829from taskiq .task import AsyncTaskiqTask
@@ -47,10 +48,12 @@ def __init__(
4748 task_name : str ,
4849 broker : "AsyncBroker" ,
4950 labels : Dict [str , Any ],
51+ queue : Union ["Queue" , str ] = DEFAULT_QUEUE ,
5052 return_type : Optional [Type [_ReturnType ]] = None ,
5153 ) -> None :
5254 self .task_name = task_name
5355 self .broker = broker
56+ self .queue = Queue (queue )
5457 self .labels = labels
5558 self .custom_task_id : Optional [str ] = None
5659 self .custom_schedule_id : Optional [str ] = None
@@ -111,6 +114,19 @@ def with_broker(
111114 self .broker = broker
112115 return self
113116
117+ def with_queue (
118+ self ,
119+ queue : Union ["Queue" , str ],
120+ ) -> "AsyncKicker[_FuncParams, _ReturnType]" :
121+ """
122+ Replace queue for the function.
123+
124+ :param queue: new queue instance or name.
125+ :return: Kicker with new queue.
126+ """
127+ self .queue = Queue (queue )
128+ return self
129+
114130 @overload
115131 async def kiq (
116132 self : "AsyncKicker[_FuncParams, CoroutineType[Any, Any, _T]]" ,
@@ -296,6 +312,7 @@ def _prepare_message(
296312 return TaskiqMessage (
297313 task_id = task_id ,
298314 task_name = self .task_name ,
315+ queue = self .queue .name ,
299316 labels = labels ,
300317 labels_types = labels_types ,
301318 args = formatted_args ,
0 commit comments