리눅스 crond 사용하면서 딜레이를 주고 싶어요.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
리눅스 crond 사용하면서 딜레이를 주고 싶어요.

QA

리눅스 crond 사용하면서 딜레이를 주고 싶어요.

본문

안녕하세요 


*/1 * * * * /usr/bin/wget -O /dev/null -q --tries=1 http://127.0.0.1/api/api.php

CentOS에서 crond로 php를 주기적으로 실행하고 있습니다.


api.php에서 조건문에 해당하면 쿼리를 실행하고 해당하지 않으면 아무 행동도 하지 않습니다.


여기서 제가 원하는 것은 api.php를 1분마다 실행을 하지만 api.php 파일 내 조건문에 해당하면

쿼리를 실행한 뒤 20분 딜레이(sleep)를 갖고 다시 1분마다 실행되는 것입니다.


crond + php 만으로는 구현이 어려울까요?


※ 정리

가. 1분마다 php 반복 실행

나. api.php 파일 내 조건문에 해당하면 쿼리 실행 후 20분(sleep) 뒤 다시 1분마다 php 실행

다. 조건문에 해당하지 않으면 계속 1분마다 php 실행


구현하려면 어떻게 해야하나요?

도움좀 부탁드립니다.

이 질문에 댓글 쓰기 :

답변 1

디비 이용하시면 될 것 같습니다.

api 란 테이블을 만들고 

datetime 이란 컬럼을 만드시고요.



api.php 시작 부분에서 datetime를 가져온 뒤 datetime 값이 현재시간보다 크다면, 


if(  datetime > date() )

 exit;



이후 조건 문에서 해당 사항이 된다면, 

datetime = date("Y-m-d H:i:s", strtotime("+20mins"));

위에 datetime 값을 업데이트 합니다.


이리 하면 20분 동안 api.php 실행되도 바로 종료가 됩니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 66
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT