PHP와 Oracle을 사용하며 crontab은 예정된 시간에 PHP 스크립트를 실행합니다. 현재의 로깅/감사 솔루션에는 간단한 로그 파일이 포함됩니다. 내 cron 실행 로그를 대신 데이터베이스에 저장하고 싶습니다.데이터베이스 크론 작업 로거는 어떻게 구현해야합니까?
지금은 cron 작업이 시작될 때 CronExecution
테이블에 레코드를 만들도록 프로세스를 설계하려고합니다. 그런 다음 그 cron에 대해 무언가를 기록하기를 원할 때마다 표에 CronExecution
표에 외래 키가있는 기록을 넣을 것입니다.
PRAGMA AUTONOMOUS
pl/sql 프로 시저를 사용하여 모든 이벤트를 기록 할 계획입니다. 이 절차를 통해 다른 pl/sql 프로 시저 내부의 이벤트와 일관된 방식으로 PHP 코드에서 이벤트를 기록 할 수 있습니다.
더 강력하게 만들기 위해 데이터베이스 로그 호출이 실패한 경우 파일에 오류를 기록하도록 폴백해야합니다.
다른 사람이 비슷한 것을 썼습니까? 당신의 경험에 근거하여 어떤 제안을 했습니까?
작업을 진행하면서 각 메시지를 추가하는 CLOB 열을 제안 하시겠습니까? 그리고 나서 마지막으로 완료 또는 무언가로 상태를 설정합니다. CLOB에서 전체 실행 로그를 검색 할 수 있습니까? 데이터베이스에서 일종의 일정 등록 정보를 가지고 있다는 생각을 읽었습니다. 저는 Quartz for Java를 사용했으며, 좋아했습니다. 그러나 PHP를 사용하면서 crontab에서 얼마나 많은 기능을 대신 할 수 있는지 잘 모르겠습니다. 그러나 정보 필드에 시작/중지/다음 실행 세부 정보를 추가하는 것은 좋은 생각입니다. 감사! –
CLOB, VARCHAR (MAX), DB에있는 모든 것. 내 경험으로, 나는 거의 'CronEvent' 레벨에서 아무것도 필요로하지 않았다. 각 로그 메시지의 시작 부분에 시간을 인쇄하면됩니다. 이제 DB에 구성 할 필요는 없지만 "CronLog"를 볼 코드 작성을 시작할 때 가장 궁금한 질문은 "X가 언제 마지막으로 실행되었는지, 얼마나 오랜 시간이 걸렸습니까? 다시 실행 " –