2012-09-01 5 views
3

매월 말까지 실행해야하는 PHP 스크립트가 있습니다. 유닉스 계열 시스템이나 Windows 시스템의 작업 스케줄러에서 cron을 사용하지 않고 어떻게해야합니까? 거기에 PHP에 내장 된 기능이 없습니까? 왜냐하면 cron/scheduler를 사용하는 것은 그다지 휴대 가능한 방법이 아닙니다.cron없이 예약 된 PHP 스크립트 실행

+0

답은 "아니오"입니다 - 이것이 cron/task 스케줄러의 목적입니다. 유일한 다른 옵션은 적절한 시간에 사용자가 실행하기를 희망하는 다른 PHP 스크립트에 의해 실행될 때 실행하는 것입니다. – Robbie

+0

그게 cron과 다른 스케줄링 방법에 대한거야? cron을 보았습니까, 정말 간단합니다. – mtk

+0

예, 있습니다. 그러나 클라이언트가 서버에서 간단한 스크립트를 설정하기 위해 수작업을 수행하는 것을 원하지 않습니다. – astralmaster

답변

3

PHP는 단지 스크립팅 언어 일 뿐이며 시간을 인식하고 원하는 순간에 이벤트를 트리거 할 수있는 프로세스가 아닙니다.

일단 서버에 정착하면 이식성에 대해 걱정할 필요가 없습니다. 환경이 매우 다를 수 있으므로 다른 장소로 마이그레이션하는 것이 자동 프로세스가 아닙니다.

그래서 cron을 사용하거나 OS에 구애받지 않는 레이어를 작성하십시오.

3

유일한 다른 방법은 웹 사이트를로드 할 때 트리거하는 것입니다. 예를 들어, 스크립트가 마지막으로 실행 된 시간을 저장합니다. 그런 다음 페이지가로드 될 때마다 실행할 시간인지 확인합니다. 그렇다면 페이지로드의 일부로이를 실행합니다. 물론 이것은 (1) 작업이 매우 빠르다는 것, (2) 작업이 일정에 따라 정확하게 실행될 필요가 없다는 것, 두 번째 작업까지도 일정에 따라 실행될 필요가 없다는 것에 달려 있습니다. 이것은 기본적으로 wp_cron()가 Wordpress에서 어떻게 작동하는지입니다.

+0

. 그러나 다시, 나는 페이지를 먼저 적재하는 누군가에 의존한다. – astralmaster

1

내가 작업 한 시스템에는 스크립트가 마지막으로 실행 된 작은 모듈이 있었고 스크립트가 실행되어서는 안되는 지 확인하면서 주 스크립트를 실행할 때마다 확인했습니다. 경우에 따라 실행 된 다른 작업보다 먼저 수행되었으므로 정기적 인 스크립트가 "정시에"실행되지 않아도 어쨌든 시스템에 올바른 데이터가 있습니다. 또한 스크립트가 두 번 이상 실행되어서는 안되는 지 확인하고 필요한 경우 여러 번 실행했습니다. 조금 미숙하지만 PHP/mysql 이외에는 아무 것도없이 올바른 결과를 만들어냅니다.