So erstellen Sie eine ähnliche Funktion:
Legen Sie beispielsweise ein Datum auf den 20. eines jeden Monats fest und erinnern Sie den Benutzer daran, Geschenke einige Tage vor diesem Datum zu machen.
Das Datum kann auf den Tag des Monats, den Tag des Monats usw. eingestellt werden. Kann die Erinnerungszeit eine Erinnerung für den aktuellen Tag, eine Erinnerung für die Vorwoche usw. sein?
Wie entwerfe ich die Backend-Datenbank mit dieser Art von Funktion? Wie viele Tabellen werden benötigt? Da nun die Nachrichten-Push-Funktion verfügbar ist, wie kann man erkennen, wann sie gepusht wird? Eine geplante Aufgabe im Hintergrund schreiben, die kontinuierlich ausgeführt wird?
So erstellen Sie eine ähnliche Funktion:
Legen Sie beispielsweise ein Datum am 20. eines jeden Monats fest und erinnern Sie den Benutzer daran, Geschenke einige Tage vor diesem Datum zu machen.
Das Datum kann auf den Tag des Monats, den Tag des Monats usw. eingestellt werden. Kann die Erinnerungszeit eine Erinnerung für den aktuellen Tag, eine Erinnerung für die Vorwoche usw. sein?
Wie entwerfe ich die Backend-Datenbank mit dieser Art von Funktion? Wie viele Tabellen werden benötigt? Da nun die Nachrichten-Push-Funktion verfügbar ist, wie kann man erkennen, wann sie gepusht wird? Eine geplante Aufgabe im Hintergrund schreiben, die kontinuierlich ausgeführt wird?
Zwei geplante Aufgaben, drei Tabellen
1. Geschenktabelle, die Felder zum Senden enthält und ob gesendet werden soll.
Nachrichtentabelle, ob gesendet werden soll, was gesendet wird und an wen
3. Nachrichtenpersonentabelle, die Nachricht jeder Person wird extrahiert
Aufgabe eins: Scannen Sie die Aufgabentabelle. Wenn sie nicht gesendet wurde und die Zeit abgelaufen ist, fügen Sie ein Datenelement in die Nachrichtentabelle ein
Aufgabe zwei: Scannen Sie die Nachrichtentabelle, es gibt eine Nachricht. Senden Sie einfach Nachrichten entsprechend dem System. Es handelt sich um eine öffentliche Liste, die nicht unbedingt zum Senden von Geschenken verwendet wird
Es ist notwendig, die Anwendungsumgebung während des Webzugriffs und wann Benutzer darauf zugreifen
zu beurteilen
Um Ihre spezifischen Geschäftsanforderungen zu erkennen, sind mehrere Tabellen erforderlich. Eine Informationstabelle mit unkomplizierten Geschäftsanforderungen reicht aus. Wenn Sie das Timing einrichten, müssen Sie unbedingt ein Skript einrichten. Oder Sie können einen Dritten beauftragen, Jiguang Push
voranzutreiben
Datenwörterbuch
1 Die Benutzerinformationstabelle verwendet das Feld is_accept, um zu speichern, ob der Benutzer Nachrichtenaufforderungen aktiviert hat
2 Nachrichten-Push-Konfigurationstabelle erstellen
ID-Primärschlüssel
task_obj erweitertes Feld
Titeltitel
Inhalt Inhalt
on_time Endzeit
Status, ob die Plattform Nachrichtenaufforderungen aktiviert
Tage im Voraus Wie viele Tage im Voraus erinnert werden sollen (dieses Feld kann auch vom Benutzer festgelegt werden, es gibt eine Benutzerinformationstabelle, die es dem Benutzer ermöglicht, zu entscheiden, wann er erinnert werden soll)
Tipps, wie oft gedrückt werden soll
interval_time push Intervall (wie oft drückt derselbe Benutzer)
3 Nachrichten-Push-Protokolltabelle
ID-Primärschlüssel-ID
UID-Benutzer-ID
TID-Nachrichtenkonfigurations-ID
on_time Push-Push-Zeit
4 PHP-Geschäftslogik
//Alle Benutzer abrufen, deren Benutzertabelle is_accept ist, 1 Schleife
<code> foreach{ //获取推送配置信息表 //判断用户是否已推送, //判断 当前时间-用户上次推送时间>=配置间隔时间 //判断是否已达到最大推送次数 //写入推送记录表 }</code>
5 Implementierung
Wenn es sich um ein Linux-System handelt, wird empfohlen, den Systembefehl „curl“ zu verwenden.
Für ein Windows-System wird empfohlen, den Prozess-Daemon selbst zu schreiben oder urlcron zu verwenden