celery.py
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
app = Celery('config')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
tasks.py
from celery import shared_task
@shared_task
def add(x, y):
return x + y
запускаю воркера celery -A config:celery_app worker -l info
-------------- celery@magicbook15 v5.5.3 (immunity)
--- ***** -----
-- ******* ---- Windows-11-10.0.26100-SP0 2025-11-12 16:20:02
- *** --- * ---
- ** ---------- [config]
- ** ---------- .> app: config:0x2b8139bb8c0
- ** ---------- .> transport: amqp://guest:**@localhost:5672//
- ** ---------- .> results: disabled://
- *** --- * --- .> concurrency: 8 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
.> celery exchange=celery(direct) key=celery
[tasks]
. apps.db_operations.tasks.add
[2025-11-12 16:20:02,638: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2025-11-12 16:20:02,650: INFO/MainProcess] mingle: searching for neighbors
[2025-11-12 16:20:03,014: INFO/SpawnPoolWorker-1] child process 4820 calling self.run()
[2025-11-12 16:20:03,015: INFO/SpawnPoolWorker-2] child process 7228 calling self.run()
[2025-11-12 16:20:03,023: INFO/SpawnPoolWorker-3] child process 3080 calling self.run()
[2025-11-12 16:20:03,031: INFO/SpawnPoolWorker-8] child process 1724 calling self.run()
[2025-11-12 16:20:03,051: INFO/SpawnPoolWorker-5] child process 4160 calling self.run()
[2025-11-12 16:20:03,056: INFO/SpawnPoolWorker-6] child process 11952 calling self.run()
[2025-11-12 16:20:03,064: INFO/SpawnPoolWorker-7] child process 4016 calling self.run()
[2025-11-12 16:20:03,091: INFO/SpawnPoolWorker-4] child process 3792 calling self.run()
[2025-11-12 16:20:03,719: INFO/MainProcess] mingle: all alone
[2025-11-12 16:20:03,779: INFO/MainProcess] celery@magicbook15 ready.
[2025-11-12 16:20:03,963: ERROR/SpawnPoolWorker-3] Pool process <billiard.pool.Worker object at 0x0000026A1B232BA0> error: PermissionError(13, 'Отказано в доступе', None, 5, None)
Traceback (most recent call last):
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 473, in receive
ready, req = _receive(1.0)
~~~~~~~~^^^^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 445, in _recv
return True, loads(get_payload())
~~~~~~~~~~~^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\queues.py", line 394, in get_payload
with self._rlock:
^^^^^^^^^^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\synchronize.py", line 115, in __enter__
return self._semlock.__enter__()
~~~~~~~~~~~~~~~~~~~~~~~^^
PermissionError: [WinError 5] Отказано в доступе
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 351, in workloop
req = wait_for_job()
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 480, in receive
raise SystemExit(EX_FAILURE)
SystemExit: 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 292, in __call__
sys.exit(self.workloop(pid=pid))
~~~~~~~~~~~~~^^^^^^^^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 396, in workloop
self._ensure_messages_consumed(completed=completed)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 406, in _ensure_messages_consumed
if self.on_ready_counter.value >= completed:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 3, in getvalue
PermissionError: [WinError 5] Отказано в доступе
[2025-11-12 16:20:03,916: ERROR/SpawnPoolWorker-1] Pool process <billiard.pool.Worker object at 0x000002071D5B2BA0> error: PermissionError(13, 'Отказано в доступе', None, 5, None)
Traceback (most recent call last):
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 473, in receive
ready, req = _receive(1.0)
~~~~~~~~^^^^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 445, in _recv
return True, loads(get_payload())
~~~~~~~~~~~^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\queues.py", line 394, in get_payload
with self._rlock:
^^^^^^^^^^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\synchronize.py", line 115, in __enter__
return self._semlock.__enter__()
~~~~~~~~~~~~~~~~~~~~~~~^^
PermissionError: [WinError 5] Отказано в доступе
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 292, in __call__
sys.exit(self.workloop(pid=pid))
~~~~~~~~~~~~~^^^^^^^^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 396, in workloop
self._ensure_messages_consumed(completed=completed)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 406, in _ensure_messages_consumed
if self.on_ready_counter.value >= completed:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 3, in getvalue
PermissionError: [WinError 5] Отказано в доступе
[2025-11-12 16:20:11,769: ERROR/SpawnPoolWorker-5] Pool process <billiard.pool.Worker object at 0x0000017EA2932BA0> error: PermissionError(13, 'Отказано в доступе', None, 5, None)
Traceback (most recent call last):
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 473, in receive
ready, req = _receive(1.0)
~~~~~~~~^^^^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 445, in _recv
return True, loads(get_payload())
~~~~~~~~~~~^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\queues.py", line 394, in get_payload
with self._rlock:
^^^^^^^^^^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\synchronize.py", line 118, in __exit__
return self._semlock.__exit__(*args)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
OSError: [WinError 6] Неверный дескриптор
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 351, in workloop
req = wait_for_job()
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 480, in receive
raise SystemExit(EX_FAILURE)
SystemExit: 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 292, in __call__
sys.exit(self.workloop(pid=pid))
~~~~~~~~~~~~~^^^^^^^^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 396, in workloop
self._ensure_messages_consumed(completed=completed)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "C:\pch_projects\net-base\microservices\db-operations-service\db-ops-venv\Lib\site-packages\billiard\pool.py", line 406, in _ensure_messages_consumed
if self.on_ready_counter.value >= completed:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 3, in getvalue
PermissionError: [WinError 5] Отказано в доступе
огромный трейсбэк который сюда не влезает.
windows11, rabbitmq4.2.0.
сервер rebbitmq запускается, далее пытаюсь создать воркера, но без результатов
UPD. От безысходства заменил стандартный пул на gevent по совету ии. ошибка была решена. все таки хотел бы понять причину неполадок и разобраться подробнее