유사한 기능을 만들려면:
예를 들어 매월 20일을 날짜로 설정하고 해당 날짜 며칠 전에 사용자에게 선물을 주라고 상기시켜 줍니다.
날짜는 날짜, 날짜 등으로 설정할 수 있습니다. 알림 시간은 오늘 알림, 지난 주 알림 등이 될 수 있나요?
이러한 기능을 갖춘 백엔드 데이터베이스를 어떻게 설계해야 할까요? 이제 메시지 푸시 기능을 사용할 수 있게 되었는데 언제 푸시되는지 감지하는 방법은 무엇입니까? 지속적으로 실행되도록 백그라운드에서 예약된 작업을 작성하시겠습니까?
유사한 기능을 만들려면:
예를 들어 매월 20일을 날짜로 설정하고 해당 날짜 며칠 전에 사용자에게 선물을 주라고 상기시켜 줍니다.
날짜는 날짜, 날짜 등으로 설정할 수 있습니다. 알림 시간은 오늘 알림, 지난 주 알림 등이 될 수 있나요?
이러한 기능을 갖춘 백엔드 데이터베이스를 어떻게 설계해야 할까요? 이제 메시지 푸시 기능을 사용할 수 있는데 언제 푸시되는지 감지하는 방법은 무엇입니까? 지속적으로 실행되도록 백그라운드에서 예약된 작업을 작성하시겠습니까?
두 개의 예정된 작업, 세 개의 테이블
1. 언제 보낼지, 보낼지 여부를 나타내는 선물 테이블
2. 보낼지, 무엇을 보낼지, 누구에게 보낼지 테이블
3. 메시지 사람 테이블, 각 사람의 메시지 추출
작업 1, 작업 테이블을 스캔하고, 전송되지 않았고 시간이 다 되었다면 메시지 테이블에 데이터 조각을 삽입합니다.
작업 2, 메시지 테이블을 스캔하면 메시지가 있습니다. 시스템에 따라 메시지를 보내세요,,,,, 공개 목록이므로 반드시 선물을 보내는 데 사용되는 것은 아닙니다
애플리케이션 환경, 웹 접속 중, 사용자 접속 시점을 판단하는 것이 필요합니다.
특정 비즈니스 요구 사항을 확인하려면 여러 개의 테이블이 필요합니다. 복잡하지 않은 비즈니스 요구 사항은 하나의 정보 테이블이면 충분합니다. 타이밍을 설정했다면 반드시 스크립트 설정이 필요합니다. 아니면 제3자를 이용해 Jiguang Push를 푸시할 수도 있습니다
데이터 사전
1 사용자 정보 테이블은 is_accept 필드를 사용하여 사용자가 메시지 프롬프트를 활성화했는지 여부를 저장합니다
2 메시지 푸시 구성 테이블 생성
id 기본 키
task_obj 확장 필드
제목 제목
콘텐츠 콘텐츠
on_time 종료 시간
상태 플랫폼에서 메시지 프롬프트 활성화 여부
일 전 미리 알림을 보낼 일 수(이 필드는 사용자가 설정할 수도 있으며, 사용자 정보 테이블이 있어 사용자가 언제 알림을 보낼지 결정할 수 있음)
푸시 횟수에 대한 팁
interval_time push 간격(동일한 사용자가 푸시하는 빈도)
3 메시지 푸시 로그 테이블
id 기본 키 ID
uid 사용자 ID
tid 메시지 구성 ID
on_time 푸시 푸시 시간
4 PHP 비즈니스 로직
//사용자 테이블 is_accept가 1 루프인 모든 사용자 가져오기
<code> foreach{ //获取推送配置信息表 //判断用户是否已推送, //判断 当前时间-用户上次推送时间>=配置间隔时间 //判断是否已达到最大推送次数 //写入推送记录表 }</code>
5 구현
Linux 시스템인 경우 시스템 명령인 컬을 사용하는 것이 좋습니다
Windows 시스템인 경우 프로세스 데몬을 직접 작성하거나 urlcron을 사용하는 것이 좋습니다