taskiq-faststream icon indicating copy to clipboard operation
taskiq-faststream copied to clipboard

TypeError: BrokerWrapper.task.<locals>.<lambda>__taskiq_original() takes 0 positional arguments but 1 was given

Open glambary opened this issue 6 months ago • 1 comments

kafka_router = KafkaRouter(
    settings.kafka.KAFKA_BROKER,
    include_in_schema=True,
)

taskiq_broker = BrokerWrapper(kafka_router.broker)

taskiq_scheduler = TaskiqScheduler(
    broker=taskiq_broker,
    sources=[LabelScheduleSource(taskiq_broker)],
)

@taskiq_broker.task
async def sync_last_bets() -> None:
    td = timedelta(minutes=10, seconds=30)
    await sync_service.sync_bets(batch_size=100, time_delta=td)

I need to run the task once.

if i set @taskiq_broker.task exc that schedule parameter is required. if I set it this way (@taskiq_broker.task(schedule=[{"cron": "0 0 31 2 *"}])) and try to run it manually in lifespan fastapi bootstrap.py:

from broker.tasks import sync_bets_once
await sync_bets_once.kiq()

Exc: File "/home/shakdevich/Dropbox/python/Funtech/scannerservice/project/core/bootstrap.py", line 34, in lifespan await run_tasks() File "/home/shakdevich/Dropbox/python/Funtech/scannerservice/project/core/bootstrap.py", line 75, in run_tasks from broker.tasks import sync_init_bets File "/home/shakdevich/Dropbox/python/Funtech/scannerservice/project/broker/tasks.py", line 24, in @taskiq_broker.task(schedule=[{"0 0 31 2 *"}}]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/shakdevich/.cache/pypoetry/virtualenvs/scannerservice-Wg8Y1DKw-py3.12/lib/python3.12/site-packages/taskiq/decor.py", line 98, in call return self.original_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: BrokerWrapper.task..__taskiq_original() takes 0 positional arguments but 1 was given

glambary avatar Apr 16 '25 19:04 glambary