2017-01-09 1 views
0

Google App Engine의 응용 프로그램에서 cron.xml에 cron 작업을 구성했습니다.
이러한 작업은 내 응용 프로그램 버전에서 하루에 한 번 작동하고 db에 대한 작업을 수행합니다.
예를 들어 cron 작업은 몇 주 후,이 응용 프로그램 인스턴스가 더 이상 제대로 작동하지 않을 것 같다 v1.myapp.appspot.com ...GAE cron 작업이 예기치 않게 종료 됨

를 호출합니다. 내가 예상 한대로 cron 작업을 실행하지 않습니다.

GAE 대시 보드에서 cron 작업 목록이있는 섹션을 발견했지만 거기에 내 cron 작업을 볼 수 없습니다.

왜 그들은 성질이 좋습니까? 구성 환경에 어떤 문제가 있습니까? 또는 왜 Google이 내 크론 작업의 실행을 중지합니까?

+0

cron 작업이 작동 중이므로 다른 버전의 응용 프로그램이나 업데이트 된 cron 작업을 배포 했습니까? –

+1

누락 된 작업에 대한 cron.xml 내용 표시에 도움이 될 수도 있습니다 –

+0

백엔드 인스턴스에서 실행 중일 수도 있습니다. 목표 및 버전을 확인하고 일치하는 버전 및 yaml 파일 (app.yaml, cron.yaml, backend.yaml 등)을 배포하십시오. – GAEfan

답변

0

cron 작업 구성은 응용 프로그램 범위 구성이며 특정 서비스/버전의 구성이 아닙니다. 모든 cron 배포 (반드시 서비스/버전을 업데이트하지 않고 수행 할 수 있음)는 이전에 배포 된 cron 배포를 덮어 씁니다.

개인적으로 우연한 실수를 피하기 위해 필자는 필요에 따라 각 서비스 내부에 심볼릭 링크 된 앱 수준에서 하나의 cron 구성 파일을 가지고 있습니다.

이전 버전의 cron 작업을 계속 실행하려면 해당 서비스/버전과 일치하는 대상이있는 구성 항목을 추가해야합니다. 그렇지 않으면 해당 버전이 더 이상 기본값이 아닐 때 cron 작업이 작동을 멈 춥니 다 하나 (크론 트리거 요청이 지향하는 바와 같이 기본 서비스/버전) :

Creating a cron job에서 :

<?xml version="1.0" encoding="UTF-8"?> 
<cronentries> 
    <cron> 
    <url>/tasks/summary</url> 
    <target>beta</target> 
    <description>daily summary job</description> 
    <schedule>every 24 hours</schedule> 
    </cron> 
</cronentries> 

목표 사양은 선택 사항이며 서비스/버전의 이름입니다 . 존재하는 경우 대상이 응용 프로그램의 호스트 이름 앞에 추가되어 작업이 해당 서비스/버전으로 라우트됩니다. 대상을 지정하지 않으면 작업은 기본 버전 기본 서비스에서 실행됩니다.

관련 문제