2013-09-30 1 views
0

cloudControl에서 run a local task via a worker 또는 cronjob을 실행할 수 있습니다.cloudControl PaaS의 로컬 파일에서 cronjob을 실행하는 방법은 무엇입니까?

로컬 작업을 정기적으로 수행하려는 경우 (공개적으로 액세스 할 수있는 웹 사이트에 연락하고 싶지 않은 경우) 어떻게됩니까?

나는 가능한 솔루션을 참조하십시오

the documentation에 따르면
  1. ,

    "cloudControl에 cronjobs가 지정한 URL에 정기 호출합니다."

    파일을 로컬에서 호출 할 수 없습니다 (?). 그래서 URL을 통해 호출 할 수있는 페이지를 만들어야합니다. 클라이언트가 localhost (= 서버)에 있다면 검사를 수행해야합니다.이 방법을 피하고 싶습니다.

  2. 원하는 시간 동안 작업자를 sleep()으로 만든 다음 다시 실행하십시오.

    // do some arbitrary action 
    Foo::doSomeAction(); 
    
    // e.g. sleep 1 day 
    sleep(86400); 
    
    // restart worker 
    exit(2); 
    
하나

권장?
(또는 단순히 cron을 통해 로컬 파일을 호출 할 수 있습니까?)

답변

2

URL 요청은 별도의 웹 서비스에서 이루어지기 때문에 첫 번째 옵션을 사용할 수 없습니다. cron 작업에서 HTTP 인증을 사용할 수도 있지만 작업자 솔루션도 완전히 유효합니다.

작업자가 소프트웨어 업데이트 또는 하드웨어 장애 발생시 다른 서버로 마이그레이션 될 수 있으므로 SomeAction()은 때때로 하루에 한 번 이상 실행될 수 있습니다.

+0

이 외에도 언제든지 cron 부가 기능을 사용하여 http 요청을 트리거하고 API를 통해 작업자를 시작할 수 있습니다. 작업자가 다시 시작되는 것과 관련하여, 예를 들어 작업자가 다시 시작된 경우. 노드 실패는 동일한 작업자 ID를 유지합니다. 작업자 ID는 환경에서 사용할 수 있습니다. 이 작업을 사용하여 잠금 메커니즘을 구현할 수 있습니다. 예를 들어 작업이 두 번 이상 실행되지 않는 것이 중요한 경우. – pst

+0

이러한 시나리오에 사용할 수있는 설명서 또는 방법이 있으십니까? –

관련 문제