2012-06-22 1 views
0

를 사용하는 동안 발생하는 다음과 같은 오류가 점점 :형식 오류 내가 <a href="https://github.com/celery/celery" rel="nofollow">Celery 2.6.0rc5</a>을 사용하고 셀러리 2.6.0rc5

[2012-06-22 23:01:42,016: ERROR/MainProcess] Unrecoverable error: TypeError('handle_event() takes exactly 3 arguments (1 given)',) 
Traceback (most recent call last): 
    File "/home/bmh/celery/celery/worker/__init__.py", line 350, in start 
    component.start() 
    File "/home/bmh/celery/celery/worker/consumer.py", line 369, in start 
    self.consume_messages() 
    File "/home/bmh/celery/celery/worker/consumer.py", line 435, in consume_messages 
    readers[fileno](fileno, event) 
    File "/home/bmh/kombu/kombu/transport/redis.py", line 636, in handle_event 
    self._callbacks[queue](message) 
    File "/home/bmh/kombu/kombu/transport/virtual/__init__.py", line 461, in _callback 
    return callback(message) 
    File "/home/bmh/kombu/kombu/messaging.py", line 482, in _receive_callback 
    self.receive(decoded, message) 
    File "/home/bmh/kombu/kombu/messaging.py", line 454, in receive 
    [callback(body, message) for callback in callbacks] 
    File "/home/bmh/celery/celery/worker/consumer.py", line 397, in on_task_received 
    [callback() for callback in on_task_callbacks] 
TypeError: handle_event() takes exactly 3 arguments (1 given) 

I pulled both kombu and celery from git just moments ago, 그리고 12.04 LTS redis-server (2 우분투에서이 작업을 시도하고있다 : 2.2.12-1build1)를 브로커로 설치합니다.

내 설정 ( celeryconfig.py는)

입니다 :

BROKER_URL = "redis://localhost:6379/0" 
BACKEND_URL = BROKER_URL 
CELERY_RESULT_BACKEND = "redis" 
CELERY_REDIS_HOST = "localhost" 
CELERY_REDIS_PORT = 6379 
CELERY_REDIS_DB = 0 

내 근로자 (worker.py)입니다 :

#!/usr/bin/python2.7 
from celery import Celery 

celery = Celery() 

celery.config_from_object('celeryconfig') 

@celery.task(ignore_result=True) 
def atest(data): 
    print "Got data: %s" % data 

if __name__ == "__main__": 
    celery.start() 

나는 $ ./worker.py worker와 작업자를 실행하고 파이썬에서 다음과 같이 나는 노동자를 호출 할 때 셸 :

import worker 
worker.atest("abc") 

작업자는 th 내가 $ ./worker.py shell 및 실행 "수입 다시마를 실행할 때, 덧붙여

[2012-06-22 23:01:43,025: WARNING/MainProcess] File "/home/bmh/kombu/kombu/utils/eventio.py", line 95, in unregister 
[2012-06-22 23:01:43,025: WARNING/MainProcess] self._epoll.unregister(fd) 
[2012-06-22 23:01:43,025: WARNING/MainProcess] ValueError 
[2012-06-22 23:01:43,025: WARNING/MainProcess] : 
[2012-06-22 23:01:43,026: WARNING/MainProcess] I/O operation on closed epoll fd 

; 오류 위 전자는 궁극적으로 근로자가 다음에 종료로 끝나는 더 이상 오류를보고 kombu. 버전는 "내가 최신 버전으로 이해 2.2.2을보고합니다. 또한,하지만 다시마를 업데이트하여 해결 한 듯 someone else encountered this 협조 할 수있다.

을이 정말 간단한 셀러리 프로젝트로 내가 당장 어떤 도움을 감사하게 될 것입니다 위치에 난처한 상황에 빠진 조금 오전, 나는 셀러리 완전히 새로운 오전, 상상할 수있는, 이것은 개발 버전입니다.

읽기 주셔서 감사합니다.

답변

2

나는 Billiard의 최신 버전으로 업데이트하여 이것을 해결 한 것 같습니다 :

$ git clone https://github.com/celery/billiard 
$ cd billiard 
$ python setup.py develop 
+0

작동하지 않습니다 : - (... 나는 그것이 나에게주는 thrid 단계 마지막'역 추적 (가장 최근의 호출) 할 때 distutils.core 수입에서 에 파일 "setup.py", 라인 (10)을, 설치, 확장, find_packages # noqa ImportError : 이름을 가져올 수 없습니다 find_packages '.. 무엇이 문제입니까? –

+1

@ Rania-Boy :이 문제를 해결 한 지 2 년이 지났기 때문에 나는 당신의 상황에 어떤 문제가 있을지 몰랐다. 이제 데비안 버전 만 사용합니다. 아마도이 질문을 참조하는 새로운 질문을 시작하고 싶을 것입니다. 그냥 생각. 건배. –