마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 <-> PHP 질문있습니다 ㅠ

0 추천
어플을 만들고 있는 대학생입니다.




회원정보 관리쪽을 지금 만들고 있는데




제가 구현하고자 하는 순서가




1.앱에서 임시비밀번호 요청버튼 클릭

2.php 에서 5자리 난수생성하여 apmsetup mysql 에 저장 

3.앱에서 팝업 또는 alertdialog  등으로 5자리 난수를 보여줌 

4.일정시간 지난후 db에 저장된 임시비밀번호 자동삭제




인데요.




저는 2번과정에 5자리 난수생성후 db에저장하는 쿼리문실행 -> sleep(10) -> 저장된 자료를 삭제 하는 쿼리문




이렇게 작성했는데요.




apmsetup 에서는 정상적으로 난수생성되서 저장되고 10초뒤에 지워지는데요




php문에서 sleep(10)으로 했다면  앱에서는 버튼클릭시 10초후에 난수를 보여주는 창이뜨네요..

이미 서버에는 그 난수가 지워졌는데




sleep(50) 이라고 하면 50초후에 창이뜨고요 어플에서..

버튼을 누르면 난수가 보여지고 일정시간 지난후에 그 난수를 삭제할수 있는 다른 방법이 있을까요..




도와주세요..  안드로이드 쓰레드쪽은 제가 아직 초보라서 공부를 아직 못했네요 ㅠㅠ

 

죠스바 님이 2015년 9월 1일 질문

1개의 답변

0 추천
서버에서 sleep 를 거시면 앱에서 API를 호출하면 해당 sleep 가 걸린 시간동안 대기 하게됩니다.

즉 서버에서 결과를 내려줄때까지 기다리게 되는거죠, 당연한겁니다.

다시 생각해보시면 앱에서 서버로 API를 요청하였고 서버에서 응답을 주지 않은 상태로 10초의 딜레이를 주었는데 앱에서는 어떻게 결과를 받을 수 있을까요?

안드로이드 쓰레드 문제가 아니라 API 응답대기가 문제인듯 하네요

 

지금 하시려는게 임시 비밀번호를 발급하고 특정시간내에 해당 난수값을 입력하지 않으면 소멸시키려는걸 하시려는 건가요?

Redis 를 이용하시면 손쉽게 구현이 가능합니다. 그렇지 않은경우 가장간단한 방법으로는 앱에서 타이머로 입력시간을 제한하시고 해당 시간이 지나면 임시 비밀번호 초기화 API를 호출하여 날려주시면 될듯하네요

대신 그에 따른 예외처리 또한 많이 필요하구요

Redis를 사용하시면 특정 시간동안만 사용할 수 있도록 데이터를 저장할 수 있습니다.  데이터 저장시 5분이란 시간을 걸어두면 5분동안만 메모리상에 올라가며 5분뒤에는 자동으로 소멸됩니다.

흔히 말하는 메모리디비 입니다
하늘아륑 (16,800 포인트) 님이 2015년 9월 1일 답변
...