CI 묻고 답하기

제목 20분뒤 특정 디비에 있는 값을 '자동으로' 지우고 싶습니다.
글쓴이 피스트 작성시각 2012/09/11 00:19:47
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 15159   RSS
 가능할까요?비슷한 구현을 들어본적이 없어서;;

사용자가 사이트에 들어와서 본인 이름과 생일 정도를 입력하면 서버에서 세션(또는 쿠키)을 생성하고
어떤 값을 디비에 insert 합니다.

20분뒤 (또는 세션이 파기될때) 저장한 그 값을 자동으로 서버에서 지우고 싶은데,

어떻게 할지 도통 감이 안오네요;
cron을 이용해서 20분뒤 자동 php 실행을 할수도 없고..방법이 있을까요?
 다음글 count 속도 차이 (2)
 이전글 calendar 클래스에서요 (1)

댓글

milosz / 2012/09/11 09:30:06 / 추천 0
 cron을 쓰거나... 아니면 가사 cron을 구현하는 것 외엔 없어보이네요.
디비에 시간값과 함께 저장해서 20분 이후로는 없는 데이터로 취급하는 방법 정도 생각이 나네요.
변종원(웅파) / 2012/09/11 09:38:59 / 추천 0
ci db세션을 사용하시고 세션core를 살짝 수정하시면 가능합니다.

세션 exfire 시킬때 세션 비교해서 그 값을 삭제하는 함수 하나 끼워넣으면 되구요.

또 한가지는 insert할때 insert시간을 db에 넣고 크론으로 1분마다 돌리는 방법이 있습니다.
현재 시간 기준으로 20분 전 insert값 삭제.
인스카 / 2012/09/11 13:01:08 / 추천 0
방문자가 꾸준하게 유입되는 시스템인 경우 이벤트 큐를 DB에 쌓고, 매 방문마다 이벤트를 확인하는 방법이 있습니다만, 혹시라도 방문자가 없으면 이벤트가 일어나지 않을 수 있고 시스템 전체 퍼포먼스가 떨어질 수 있습니다.

또는 ajaxForm을 통해서 백그라운드로 서버단에 요청을 보내고, 서버에서는 20분 뒤에 뭔가가 실행되게 할 수도 있습니다만, 역시나 서버에 무리를 줄 수 있습니다.

저는 위의 두 가지 방법을 적절하게 섞어서 사용 중입니다.
milosz / 2012/09/11 17:03:59 / 추천 0
 mysql의 Event Scheduler를 사용하셔도 되긴 하는데... 상황에 맞을진 잘 모르겠네요~