srd_pushmsg 사용자 6만에게 동시메세지를 보낸다면 반복문이 최선인가요?
본문
안녕하세요,
그누보드에 srd_pushmsg 를 사용중입니다.
6만명의 사용자에게 일괄 메세지를 보내야 하는데 srd_pushmsg 테이블에 6만개의 동일한 내용을 for 문처럼 반복해서 insert하는 방식이 최선일까요?
보통 다른 앱/사이트들은 push/전체공지알림 발송관리를 어떻게 하는지 궁금합니다.
답변 5
insert ..
insert ..
건별로 insert 방식이아닌
하나의insert에 모아서
insert [value], [value], [value], [value] 이런식으로 하면 위 방식보다 빠릅니다
전체공지 데이터 1개
접속한 사용자에게 알림
알림을 받은 사용자는 받았다는 표시 insert
> 전체 6만명 이지만 실제 접속해 읽은 사용자가 60명 이면 : 공지(1) + 읽음(60) = 61 개 데이터만 유지 가능
insert ... select 구문을 검토해 보세요.
별도로 개발해야하지만
회원 여분필드를 사용하면 동일한 내용을 6만개나 디비에 insert할 필요는 없습니다
여분필드(mb_1)가 빈 값이거나 메모 등록일자(cf_1) 이전이면 접속시 메세지 있음을 알려주고
읽기 페이지에 들어가면 mb_1에 읽은 날짜를 기록하면 되겠습니다
공통메모 내용은 테이블을 하나 만들거나 게시판을 이용하거나....
메모등록 일자는 공통여분필드 cf_1에도 기록
안드로이드는 topic 이라고 해서 주제에 맞는 알림을 설정할수 있습니다.
해당 topic을 구독해둔 사용자는 동일한 메세지를 받는것입니다.
보통은 개인 토픽(프라이빗 메세지) 과 전체 토픽을 만드는 방식인데,
용도에 따라서 토픽을 좀더 늘리고 토픽을 구독시키는 방법이 있습니다.
- 회원 등급별로 토픽을 추가해도 되고, 유료회원 무료회원으로 토픽을 나눠도 되고 프로모션을 통해 가입된 회원을 별도로 묶는등, 여러가지로 토픽을 만들면 됩니다.
토픽이 있는 경우 해당 토픽에 동일 메세지인 경우 한번만 발송할수 있습니다.
2번째 개인 메세지를 6만건 루프로 보내야 하는 경우에, 배치 처리를 한다 하더라도 상당한 시간이 소모됩니다.
php에서 비동기 처리 또는 배치처리하는 php 파일을 한번에 여러개 실행시키는 방법을 써서 동시성을 높혀야 짧은시간에 많은 메세지를 발송하실수 있을겁니다.