This error confused me initially and the Celery documentation wasn't directly helpful.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/jaypax/.local/share/virtualenvs/server-9an_1rEM/lib/python3.6/site-packages/celery/app/task.py", line 518, in apply_async
check_arguments(*(args or ()), **(kwargs or {}))
TypeError: run_scraper_one() takes 1 positional argument but 40 were given
I called my task as run_scraper_one.apply_sync(args=('keywords here'), countdown=5).
The run_scraper_one() method is decorated with @shared_app. So this should work. Should. But apparently after digging around: here and here, I figured out that it wants a list or tuple.
So, the correct way to invoke the task is:
run_scraper_one.apply_async(("keyword here",), countdown=5)
Fixed.