2013-09-23 4 views
2

AppEngine에 "심각한"응용 프로그램을 처음 작성하고 작업 대기열에 문제가 발생했습니다.맞춤 GAE 작업 대기열 오류

appengine docs에있는 예제 코드를 읽고 재현했습니다. 나는 그것이 others 작동으로 나를 위해 작동하지 않지만 사용자 정의 대기열에 작업을 추가하려고

:

내가 할 것은 : 다음

from google.appengine.api import taskqueue 

def EnterQueueHandler(AppHandler): 
    def get(self): 
     #some code 
    def post(self): 
     key = self.request.get("value") 
     task = Task(url='/queue', params={'key':key}) 
     task.add("testqueue") 
     self.redirect("/enterqueue") 

그리고 물건을하는 "/ queue"에 대한 핸들러를 설정하십시오.

NameError: global name 'Task' is not defined

왜 즉 :

문제는이 다음과 같은 오류가 발생한다는 것입니다? 나에게 뭔가 기본적인 것을 놓치고있는 것 같지만 무엇을 알아 내지 못하니. docs에서 태스크 - 클래스가 태스크 큐 모듈에 의해 제공된다고 말합니다.

taskqueue.add(queue_name="testqueue", url="/queue", params={"key":key}) 

그러나 다른 방법하지 않는 이유를 이해하고 싶습니다 : 지금까지

나는 다음과 같이 위의 코드에서이 작업 관련 라인을 교체하는 경우 작동하는지 알아 낸 그럼에도 불구하고 일합니다. 누군가가 나를 도울 수 있으면 아주 좋을거야. 당신이 줄 대체 할 수

from google.appengine.api import taskqueue 

이미 가져온 이후

+0

'Task'를'taskqueue.Task'로 대체하십시오. – karthikr

+0

와우, 고마워요! 그것은 정말로 빨랐다! 그리고 그것은 정말 기본적인 것이 었습니다 ... 어떻게 당신의 의견을 해결책으로 표시 할 수 있습니까? – Lynbarry

+0

도움이 되니 기쁩니다. 나는 너의 질문에 대답했다. 이제 답을 수락 된 것으로 표시 할 수 있습니다. – karthikr

답변

1

From the documentation

Task is provided by the google.appengine.api.taskqueue module.

:와

task = Task(url='/queue', params={'key':key}) 

task = taskqueue.Task(url='/queue', params={'key':key}) 
,
0

"작업"을 가져올 수 없다는 이유가 작동하지 않는다고 생각합니다. 아래는 모든 시간을 성공적으로 사용하는 예입니다. 너와 똑같이 보이지만 수입은 다르다.

from google.appengine.api.taskqueue import Task 

task = Task(
    url=url, 
    method=method, 
    payload=payload, 
    params=params, 
    countdown=0 
) 

task.add(queue_name=queue)