2010-05-29 7 views
1

Goole App Engine Task Queue API를 사용하여 게임을 사용하는 방법을 배웠습니다. 하지만 로컬로 트리거 할 수는 없었습니다. 내 애플리케이션은 Google 서버에 업로드 할 때 매력처럼 작동합니다. 그러나 그것은 국지적으로 발동하지 않습니다. 관리자가 볼 수있는 것은 작업 목록뿐입니다. 그러나 ETA가 오면 그냥 지나쳐 버립니다. 그것은 그들이 달리는 것처럼 그들은 실패하지만 재 시도를 기다리고 있습니다. 그러나 커맨드 라인에서 이러한 이벤트를 볼 수는 없습니다.작업 대기열 작동이 중지되었습니다.

관리자 패널에서 "실행"을 클릭하면 successfuly로 실행되고 명령 줄에서 이러한 요청을 볼 수 있습니다. App Engine SDK 1.3.4를 Linux에서 Google-app-engine-django와 함께 사용하고 있습니다. 나는 지금 3 시간에서 문제를 찾으려고 노력하고있어. 나는 그것을 발견 할 수 없었다. 또한 GAE 애플리케이션을 디버그하는 것은 매우 어렵습니다. 콘솔 화면에는 디버그 메시지가 나타나지 않기 때문입니다.

감사합니다.

답변

1

개발 서버는 자동으로 작업을 실행하지 않으므로 직접 설정해야합니다. 디자인 기능이므로 어느 시점에서 실행되는 대신 실행 한 결과를 볼 수 있습니다.

기본적으로 애플리케이션에는 아무런 문제가 없으며 개발 서버의 기능입니다.

+0

나는 그것을 몰랐다, 고마워. 이상합니다. 문서화되어 있지 않습니다. – pocoa

+0

dev 서버는 1.3.4 버전부터 자동으로 작업을 실행합니다. 새로운 기능입니다. – geoffspear

+0

그것이 문서화되지 않았다는 사실을 나는 모른다. 그러나 사람들이 불평하면 자신의 문서를 개선해야한다는 압박감을 느끼기 때문에 문서화 버그에 대한 높은 관용이 있다고 생각합니다. 그 압력을 느끼지 않기 때문에 나는 불평하는 경향이 있습니다. – H2ONaCl

0

로컬 devserver는 이제 대기열을 지원합니다. 지역 개발 모듈은 다른 도메인 이름을 사용하는 대신 다른 (동적) 포트에 로컬 호스트에 배포하는 방식을 사용합니다. 대기열로 작업을 보낼 때 대기열을 수신하는 호스트와 대기열 URL을 추가해야하는 경우 수행해야 할 작업. 자바 예제 (미안)가 있습니다. 파이썬은 비슷한 방법을 가지고 있습니다 :

ModulesService moduleService = ModulesServiceFactory.getModulesService(); 
    String hostNameToQuery = moduleService.getVersionHostname("worker_module_name", null); 
    logger.info("hostNameToQuery=" + hostNameToQuery); 
    TaskOptions options = TaskOptions.Builder 
      .withUrl("/workerQueueURL") 
      .header("Host", hostNameToQuery) 
      .param("taskKey", taskKeyString) 
      .retryOptions(RetryOptions.Builder.withTaskRetryLimit(0)); 

이 방법이 유용했는지 알려주세요.

관련 문제