테스트 사이트 - 개발 중인 베타 버전입니다

crontab에서 매 5초마다 실행되게 한 후에... 채택완료

길동엉아 4년 전 조회 2,563

안녕하세요 초보가 며칠째 고민하다 이렇게 질문을 올립니다.

 

crontab에서 

// 이건 1분마다

*/1 * * * *     root   curl --request GET 'http://127.0.0.1/get.php">http://127.0.0.1/get.php';

//이건 10초마다

*/1 * * * *     root   curl --request GET 'http://127.0.0.1/result.php">http://127.0.0.1/result.php';

*/1 * * * *     root   curl --request GET 'http://127.0.0.1/result.php">http://127.0.0.1/result.php' & sleep 10;

*/1 * * * *     root   curl --request GET 'http://127.0.0.1/result.php">http://127.0.0.1/result.php' & sleep 20;

*/1 * * * *     root   curl --request GET 'http://127.0.0.1/result.php">http://127.0.0.1/result.php' & sleep 30;

*/1 * * * *     root   curl --request GET 'http://127.0.0.1/result.php">http://127.0.0.1/result.php' & sleep 40;

*/1 * * * *     root   curl --request GET 'http://127.0.0.1/result.php">http://127.0.0.1/result.php' & sleep 50;

 

이렇게 작성했는데 아주 가끔씩 result에서 db에 중복 insert를 해서 고민중에

데이터 처리하는게 10초가 넘을 경우 db 중복 insert가 되는게 아닐까 생각하게 되었습니다.

 

이경우 cronttab에서 뭔가 설정을 해줄수 있는지 궁금합니다.

php상에서는 

if ($row_chk['cnt'] > 0){

....................

}

중복이 됩니다.. 힌트라도 좀 부탁드립니다. ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
식쏭
4년 전

크론작업 관리용 db 테이블을 하나 만드시고,
크론 동작 실행시 상태값 1로 인서트 , 끝나면 2 로 업데이트 해주세요.

http://127.0.0.1/result.php" rel="nofollow">http://127.0.0.1/result.php 에서

if( 상태값 1 인 카운트가 있으면 ) exit; 

크론관리 테이블에 상태값 1 인서트

원하는 동작~~

크론관리 테이블에 상태값 1이었던것 2로 업데이트





 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

필드중 고유한값이 있으면 unique 처리를 하시면 중복입력이 안될겁니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인