Как постоянно запускать запрос для проверки базы данных каждую минуту в PHP и JavaScript

#javascript #php

#javascript #php

Вопрос:

Я создаю проект, который является веб-сайтом. В основном это установит напоминание и уведомит пользователя с помощью электронной почты / SMS. Я использую PHP и JavaScript. Моя база данных хранит список пользователей в таблице 1 и отдельную таблицу для каждого пользователя и его задач (с указанием времени и дат). Я хочу каждую минуту обращаться к базе данных для проверки наличия задач, даже если пользователь не вошел в систему (браузер закрыт). Что мне сделать, чтобы постоянно выполнять проверку запроса? Я хочу что-то, что будет работать в фоновом режиме все время, даже если пользователь никогда не открывает браузер. Пожалуйста, помогите. PHP-код для хранения в базе данных пользователей является

 <?php
include("init.php");
session_start();
if(isset($_POST))
{
    $date = $_POST["date"];
    $event = $_POST["event"];
    $time = $_POST["time"];
    $daily = $_POST["daily"];
    $weekly = $_POST["weekly"];
    $monthly  = $_POST["monthly"];
    $fname = $_SESSION['fname'];
    $fname = mysql_real_escape_string($fname);
    $sql = "insert into $fname(fname,date,event,time,daily,weekly,monthly) values('$fname','$date','$event','$time','$daily','$weekly','$monthly')";

    if(mysqli_multi_query($con,$sql))
        echo "<br><h3> row inserted...</h3>done";
    else
        echo "Error in insertion...".mysqli_error($con);
}
?>
  

С кодом нет проблем.
Мне просто нужно знать, как и с помощью чего я могу постоянно ссылаться на базу данных на стороне сервера, когда пользователя нет на странице.
Может ли php работать 24 часа, даже если браузер закрыт, потому что я знаю, что javascript не будет работать.

Комментарии:

1. Вам нужно переосмыслить эту идею. Если браузер не открыт или не находится на текущей странице, то код не сможет выполняться. Если вы хотите запустить это независимо от браузера, вы можете захотеть посмотреть задания cron и таймеры базы данных.

Ответ №1:

Вам нужно создать событие в MySQL (или используемом вами диспетчере баз данных, например:

 CREATE EVENT e_totals
->     ON SCHEDULE AT '2006-02-10 23:59:00'
->     DO INSERT INTO test.totals VALUES (NOW());
  

Или повторяющееся событие:

 delimiter |

CREATE EVENT e_daily
    ON SCHEDULE
      EVERY 1 DAY
    COMMENT 'Saves total number of sessions then clears the table each day'
    DO
      BEGIN
        INSERT INTO site_activity.totals (time, total)
          SELECT CURRENT_TIMESTAMP, COUNT(*)
            FROM site_activity.sessions;
        DELETE FROM site_activity.sessions;
      END |

delimiter ;
  

Ответ №2:

Sagar то, что вы ищете, — это CRON Task. Я боюсь, что PHP и Javascript сами по себе не могут это запустить.

Рабочий процесс:

  1. Создайте API, содержащий всю вашу бизнес-логику или обработку, необходимую для ее выполнения.
  2. Зарегистрируйте задание CRON в cPanel или crontab -e на вашем компьютере с Linux.
  3. Используйте конечную точку непосредственно с помощью вызовов AJAX или создайте отдельную конечную точку, поскольку задача cron продолжит работу.

Обратитесь к этой ссылке, если вы хотите узнать больше о заданиях cron — http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples

Спасибо, Абхишек Джейн

Комментарии:

1. Да, задача cron — это определенно правильный подход. @Sagar, в случае, если вы не используете свой собственный сервер для веб-приложения, вы можете вернуться к веб-сервису, такому как webcron.org для запуска вашего PHP-скрипта. Я пользуюсь этим сервисом много лет.

2. @Sagar, что касается моего предыдущего комментария: веб-сервис дешевый, если вы не запускаете его слишком часто, но для выполнения действий «каждую минуту» это, вероятно, будет немного дороже …

3. я использую Windows, а не Linux. Также для размещения моего веб-сайта я использую [hostinger.in ]

4. Итак, как мне с этим справиться @cars10

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