Ich habe folgendes Szenario anzuzeigen. Wenn eine offene Reklamation nicht innerhalb von 48 Stunden abgeschlossen wird und sich diese Reklamation 48 Stunden ohne Abschluss nähert, sollte das Popup oder die Benachrichtigung im Backend vor dem Zeitlimit (etwa 1 Stunde vorher) vorliegen. Ich denke Cron-Job (jede Stunde) zu tun. Mein Problem ist, wie die Benachrichtigung in Cron-Job zu tun. Jeder Vorschlag ist willkommen.kann Cron Job verwendet werden, um Benachrichtigung in PHP-Web
Antwort
Der Cron-Job sollte keine Verbindung zu den Seiten herstellen. Es sollte umgekehrt sein: Verwenden Sie die Back-End-Seiten selbst, um nach Abschluss des Jobs zu suchen. Sie können dazu Server-Sent Events (SSE) verwenden. Der Prozess wäre:
Backend Seiten (Javascript) zu einem SSE Kanal abonnieren und ein Popup angezeigt, wenn der PHP-Skript ein Ereignis
var source = new EventSource("job_checker.php");
source.onmessage = function(event) {
//event contains the job info and deadline. you can display it
var jobDetails = JSON.parse(event);
...
};
Die PHP job_checker.php emittiert kann für eine bestimmte Zeit eine Schleife durchlaufen und nach dem Abschluss des Jobs suchen:
<?php
$time_limit = 300; //300 seconds
$time_spent = 0;
while($time_spent < $time_limit){
sleep(30); //sleep for 30 seconds
$time_spent += 30;
//check DB for job completion and deadline.
//if you find a job, emit an SSE to the browser
if($event_found){
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
echo "data: ". json_encode($event_found)."\n\n";
flush();
}
}
Das PHP-Skript wird weiterhin funktionieren König für 300 Sekunden. Wenn es ein Ereignis findet, gibt es Daten aus und der Browser wird es bekommen. Nach 300 Sekunden wird das Skript beendet. Wenn der Benutzer die Admin-Seite weiterhin geöffnet hat, wird der Browser automatisch eine Verbindung herstellen. Wenn der Benutzer die Seite geschlossen hat, werden die Ressourcen freigegeben.
Mehr docs from Mozilla: (dank Alok Patel für den Link)
Ein mögliches Problem mit dieser Methode besteht darin, dass ein Benutzer angemeldet sein muss, um die Benachrichtigung zu sehen. Wenn und wenn es ihre 48 Stunden Grenze überschreitet und sie irgendeine Art von Prozedur haben, die etwas löscht, dann raten Sie was? Jemand steht da, dass er kein sehr glücklicher Camper ist ;-) –
@ Fred-ii- Du hast Recht, dass dies nicht alle auslaufenden Deadlines einfangen wird. Wenn ich das OP richtig lese, sende er bereits E-Mails und SMS aus, aber es brauche ein UI-Popup, während die Admins die Rückseiten durchsuchen. Dafür würde es genügen, wenn ich nicht etwas verpasse. – BeetleJuice
ah ok. Nun, das OP sollte Ihren Code ausprobieren und wenn es für sie funktioniert, akzeptieren Sie die Antwort. Muss laufen! ;-) –
- 1. Kann nicht Cron-Job
- 2. Cron-Job in Symfony2
- 3. Cron-Job scheint
- 4. Cron Job in Laravel
- 5. Kann ein Cron-Job in einer Webanwendung ausgeführt werden?
- 6. Kann der "Service Start" von Upstart in einem Cron-Job verwendet werden?
- 7. Um sleep() oder cron Job zu verwenden
- 8. CRON-Job für Codeigniter
- 9. Redmine Cron Job-Problem
- 10. Einen Cron-Job ausführen
- 11. Kann pg_dump nicht von Cron-Job ausführen
- 12. Cron-Job PHP-Skriptfehler
- 13. Scrapy Crawler in Cron Job
- 14. Cron Job Minute vor morgen
- 15. Cron Job funktioniert nicht Node-Cron
- 16. Einen großen Cron-Job in mehrere Cron-Jobs aufteilen?
- 17. Erstellen eines Cron-Job-Schedulers
- 18. Dateipfad für einen Cron-Job
- 19. Cron Job funktioniert nicht richtig in Cpanel
- 20. Will Cron Job heute starten?
- 21. Cron Job Anzahl der Tagesintervalle
- 22. Python Script vs Cron Job
- 23. Laravel Scheduler mit Cron Job
- 24. Wie fehlertoleranter Cron-Job ist?
- 25. Codeigniter Cron-Job nicht funktioniert
- 26. Ist * * * * *? ein gültiger Cron-Job?
- 27. Cron-Job mit Shell-Skript
- 28. Cron Job funktioniert nicht für Codeigniter 2.2.5
- 29. Umbenennen() funktioniert nicht in Cron Job
- 30. Cron Job sechsten Parameter in Java
Wie über den Cron-Job-Code in Ihre Frage Hinzufügen – Machavity
was meinst du mit "Anmeldung"? meinst du, schicke ihnen eine email? Etwas auf einer Seite anzeigen? –
Nein, ich habe bereits Emails und SMS gemacht. In diesem Fall muss ich ein Popup im Backend mit Sound und Infos des Jobs anzeigen. –