Как запускать php файл каждые 5 минут - PullRequest
1 голос
/ 12 июня 2019

Как мне запускать PHP-файл каждые 5 минут или около того? Я пытался использовать cron, но, похоже, он не работает. Скажем, я хотел, чтобы на моем сайте запускался php-файл, который воспроизводит звук. Как сделать так, чтобы файл php запускался каждые 5 минут, чтобы звук воспроизводился каждые 5 минут. Я знаю, что JavaScript может сделать так, чтобы функция могла запускаться с заданным интервалом, но я хочу, чтобы файл делал то же самое.

Причина этого в том, что я создаю сайт и хочу, чтобы пользователи получали уведомления в режиме реального времени. Для этого мне нужно запустить php-файл, чтобы он мог обнаруживать изменения для уведомлений пользователей и затем создавать шум, если пользователь получает новое уведомление. Если потребуется дополнительная информация, я могу предоставить.

Редактировать:

Итак, вот что я использовал для запуска cron localhost Запуск задания Cron на PHP Script, на localhost в Windows

Мой файл script.bat "C:\Xammp\php\php.exe" -f "C:\Xammp\htdocs\SocialMedia\Admin\Users\Notification.php"

И мой файл shellscript.vbs

Set WinScriptHost = CreateObject("WScript.Shell") WinScriptHost.Run Chr(34) & "C:\Xammp\htdocs\SocialMedia\Site\script.bat" & Chr(34), 0 Set WinScriptHost = Nothing

Я следовал тому, что они сказали в этом посте, но я не вижу никаких изменений в журнале консоли для сетей. Он должен показывать файл, запускаемый каждые x минут, но не показывает

Edit: Хотя на мой вопрос нет ответа, на этом сайте я нашел свой ответ. https://web -push-book.gauntface.com / Глава-01/02-как-кнопочная работа / Спасибо!

Редактировать - это был ответ на мой вопрос - https://developer.hyvor.com/php/ajax-long-polling

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Запуск задания cron в linux или планировщике задач в windows не даст желаемого. Это не так, как технология работает. Клиент задает вопрос, сервер отвечает, конец истории. Чтобы проиллюстрировать эту мысль, как ваша рабочая группа узнает, кто должен получать обновления? Это не так, и не может.

Единственный способ, который я могу придумать в типичном сценарии веб-сайта, - это чтобы ваш клиент постоянно опрашивал сервер на наличие обновлений через ajax. Если ваша аудитория не большая, это, вероятно, сработает. Но это не будет хорошо масштабироваться.

Существует еще одна технология, которая может работать для вас: веб-push-уведомления .

Однако я подозреваю, что с использованием этой концепции существует довольно большая кривая обучения. Быстрый поиск выявил несколько страниц, которые вы хотите исследовать:

https://serviceworke.rs/push-get-payload_demo.html

https://github.com/web-push-libs/web-push-php

Я действительно ничего не знаю, кроме имени, поэтому я не знаю, будет ли это делать то, о чем вы просите, но это единственное, кроме того, что ваш клиент регулярно опрашивает сервер.

0 голосов
/ 12 июня 2019

Чтобы создать планировщик в Windows, вам необходимо: создать .bat файл на вашем сервере или в системе;Введите следующую команду в своем файле .bat:

“F:\xampp\php\php.exe” -f “F:/xampp/htdocs/sitefolder/test.php”;

Установите время и файл планировщика в планировщике задач в Windows.

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...