celery с версией 3.1.25 не работает
Я ещё новичок в celery поэтому решил пробовать максимально простой вариант. А именно сортировка чисел. Но и тут у меня не работает celery. Ранее уже гуглил и нашёл ответ что нужна версия 3.1.25! Так вот после этого деинсталлировал celery(и вообще всё что с ней связано) и заново её установил с версией 3.1.25. Но опять ничего не работает! Вот содержимое файла tasks.py
from celery import Celery
app = Celery(
"tasks",
backend="redis://localhost:6379/1",
broker="redis://localhost:6379/2"
)
@app.task()
def celery_sort(iterable):
return sorted(iterable)
а это app.py
from tasks import celery_sort
result = celery_sort.delay([10, 22, 132, 100, 12312])
print(result.ready())
res = result.get()
и файл docker-compose.yml для redis
version: "3.8"
services:
redis:
image: redis
ports:
- "6379:6379"
и вот pip freeze
amqp==1.4.9
anyjson==0.3.3
billiard==3.3.0.23
celery==3.1.25
kombu==3.0.37
pytz==2021.1
redis==3.5.3
Попробовал запускать в Ubuntu но и там точно такая же ошибка! Вот текст ошибки
Traceback (most recent call last):
File "c:\python38\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\python38\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Python38\Scripts\celery.exe\__main__.py", line 7, in <module>
File "c:\python38\lib\site-packages\celery\__main__.py", line 30, in main
main()
File "c:\python38\lib\site-packages\celery\bin\celery.py", line 81, in main
cmd.execute_from_commandline(argv)
File "c:\python38\lib\site-packages\celery\bin\celery.py", line 793, in execute_from_commandline
super(CeleryCommand, self).execute_from_commandline(argv)))
File "c:\python38\lib\site-packages\celery\bin\base.py", line 311, in execute_from_commandline
return self.handle_argv(self.prog_name, argv[1:])
File "c:\python38\lib\site-packages\celery\bin\celery.py", line 785, in handle_argv
return self.execute(command, argv)
File "c:\python38\lib\site-packages\celery\bin\celery.py", line 713, in execute
return cls(
File "c:\python38\lib\site-packages\celery\bin\worker.py", line 179, in run_from_argv
return self(*args, **options)
File "c:\python38\lib\site-packages\celery\bin\base.py", line 274, in __call__
ret = self.run(*args, **kwargs)
File "c:\python38\lib\site-packages\celery\bin\worker.py", line 194, in run
pool_cls = (concurrency.get_implementation(pool_cls) or
File "c:\python38\lib\site-packages\celery\concurrency\__init__.py", line 29, in get_implementation
return symbol_by_name(cls, ALIASES)
File "c:\python38\lib\site-packages\kombu\utils\__init__.py", line 96, in symbol_by_name
module = imp(module_name, package=package, **kwargs)
File "c:\python38\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "c:\python38\lib\site-packages\celery\concurrency\prefork.py", line 20, in <module>
from celery.concurrency.base import BasePool
File "c:\python38\lib\site-packages\celery\concurrency\base.py", line 21, in <module>
from celery.utils import timer2
File "c:\python38\lib\site-packages\celery\utils\timer2.py", line 19
from kombu.async.timer import Entry, Timer as Schedule, to_timestamp, logger
^
SyntaxError: invalid syntax
а вот команда для запуска
celery -A tasks worker --loglevel=INFO