>백엔드 개발 >PHP 튜토리얼 >PHP cron 작업 관리에 대한 구현 가정

PHP cron 작업 관리에 대한 구현 가정

巴扎黑
巴扎黑원래의
2016-11-10 09:47:441210검색

예전에는 예약된 작업 기능을 개발할 때마다 항목을 추가하기 위해 온라인으로 crontab을 조작해야 했기 때문에 PHP를 사용하여 작업 항목을 하나의 프로젝트에서 통일적으로 관리하고 싶습니다.

당신. 간단한 구성

을 통해 예정된 작업 스크립트를 프로젝트에 균일하게 저장하기 위해 [id, name, status, func, timer, last_time, Created_at] 테이블을 생성할 수 있습니다. 클래스에 구성된 단일 항목을 통해 통합 액세스하면

온라인 서버 환경

을 수정하는 온라인 코드의 문제가 줄어듭니다. 여기서는 작업이 기능별로 정리되어 있기 때문에 다음과 같은 여러 유형의 속성 분류가 있을 수 있습니다.

1. 단일 실행, 즉시 종료, 여러 인스턴스가 동시에 실행 가능

2. 데몬 프로세스는 동일합니다.

두 번째 종류의 잠금 메커니즘의 경우에도 프로그램이 실행되지 않도록 방지해야 합니다. 오류, 예외 등으로 인해 잠금이 해제되어 해당 작업을 다시 시작할 수 없게 됩니다.

이런 종류의 작업의 경우 다른 요구 사항이 변경되면 작업을 빠르고 쉽게 종료하는 방법도 고려해야 합니다. 작업 중

작업 ID를 통해 잠금 메커니즘이 구현되는 것 같아요. 작업을 실행할 때마다 적용되는 잠금마다 고정된 사용 할당량이 적용됩니다. . 이러한 종류의 작업

은 각 일괄 실행이 완료된 후 한 번씩 사용 할당량을 소비해야 합니다. 할당량이 0이 되면 시스템에서 잠금을 다시 적용해야 합니다.

lock_id: $task_id

lock_{$task_id}_quota: $quota

매번 잠금을 다시 신청하려면 다음이 필요합니다. 작업 구성 테이블에서 해당 작업의 구성 정보를 다시 읽으려면

애플리케이션이 실패하면(-1) 이 실행을 닫고 다음 실행을 기다립니다. 이러한 종류의 작업을 중단하려면 다음 두 가지 옵션을 사용할 수 있습니다.

1. 이번에 중단하려면 사용 할당량을 -1로 설정하세요.

2. 이 작업을 완전히 금지하고 재설정하세요. 비활성화된 다음 사용 할당량을 -1로 재설정합니다.

작업이 완료된 후 잠금을 해제해야 합니다. 잠금 해제에 실패하면 잘못된 잠금이 있어야 합니다. 강제 해제를 위한 감지 메커니즘

잘못된 잠금 확인:

핵심은 작업 인스턴스가 활성 상태인지, 잠금 할당량 이(가) 잘못된 잠금 감지 메커니즘에 의해 종료되었나요? 죽이고 나면 영향이 있나요?

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.