Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CELERY WindowsError: [Error 6] The handle is invalid

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
like image 787
ankalal Avatar asked Dec 16 '16 14:12

ankalal


1 Answers

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

like image 152
Anthony Rossi Avatar answered Oct 17 '22 16:10

Anthony Rossi