I am new with celery and i am following the tutorial given on their site i got this error
from celery import Celery
app = Celery('tasks', broker='pyamqp://guest@localhost//')
@app.task
def add(x, y):
return x + y
and cmd shows error like this
-------------- celery@DESKTOP-O90R45G v4.0.2 (latentcall)
---- **** -----
--- * *** * -- Windows-10-10.0.14393 2016-12-16 20:05:48
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: tasks:0x4591950
- ** ---------- .> transport: amqp://guest:**@localhost:5672//
- ** ---------- .> results: disabled://
- *** --- * --- .> concurrency: 4 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** ----- -------------- [queues]
.> celery exchange=celery(direct) key=celery
[tasks] . tasks.add
[2016-12-16 20:05:49,029: CRITICAL/MainProcess] Unrecoverable error:
TypeError('argument 1 must be an integer, not _subprocess_handle',)
Traceback (most recent call last): File
"c:\python27\lib\site-packages\celery\worker\worker.py", line 203, in
start
self.blueprint.start(self) File "c:\python27\lib\site-packages\celery\bootsteps.py", line 119, in
start
step.start(parent) File "c:\python27\lib\site-packages\celery\bootsteps.py", line 370, in
start
return self.obj.start() File "c:\python27\lib\site-packages\celery\concurrency\base.py", line 131,
in start
self.on_start() File "c:\python27\lib\site-packages\celery\concurrency\prefork.py", line
112, in on_start
**self.options) File "c:\python27\lib\site-packages\billiard\pool.py", line 1008, in
__init__
self._create_worker_process(i) File "c:\python27\lib\site-packages\billiard\pool.py", line 1117, in
_create_worker_process
w.start() File "c:\python27\lib\site-packages\billiard\process.py", line 122, in
start
self._popen = self._Popen(self) File "c:\python27\lib\site-packages\billiard\context.py", line 383, in
_Popen
return Popen(process_obj) File "c:\python27\lib\site-packages\billiard\popen_spawn_win32.py", line
64, in __init__
_winapi.CloseHandle(ht) TypeError: argument 1 must be an integer, not _subprocess_handle Traceback (most recent call last): File
"<string>", line 1, in <module> File
"c:\python27\lib\site-packages\billiard\spawn.py", line 159, in
spawn_main
new_handle = steal_handle(parent_pid, pipe_handle) File "c:\python27\lib\site-packages\billiard\reduction.py", line 126, in
steal_handle
_winapi.DUPLICATE_SAME_ACCESS | _winapi.DUPLICATE_CLOSE_SOURCE) >WindowsError: [Error 6] The handle is invalid
Celery is not supported anymore in Windows since the 4.0, as stated in their Readme:
Celery is a project with minimal funding, so we don't support Microsoft Windows. Please don't open any issues related to that platform.
Unfortunately, this bug seems to be one of the side effects (support for process handles removed)
Your best bet is to downgrade celery, remove it first then :
pip install celery==3.1.18
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With