PHP работает в фоновом режиме / сервер

0

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

$someones_birthday_today = mysql_query("SELECT * FROM users WHERE birthdate=".date('Y-m-d')." ");

if($someones_birthday_today){
    mysql_query("INSERT INTO birthdays ('user_id', 'birthdate') VALUE ('$user_id', '$birthdate') ");
}

Запрос Select и Insert не замедляет процесс. Но это Http-запрос от мобильного приложения, которое я разрабатываю. Я не хочу запрашивать каждый раз, когда пользователь посещает мой просмотр журнала приложений.

Каждую минуту/день/месяц он проверяет дни рождения сегодня и вставляет в базу данных это для уведомлений. Когда пользователь входит в свой профиль, php затем запрашивает таблицу дней рождения, если таковые имеются.

Причины: так что мне нужно запросить выбор и вставить каждый раз, когда пользователи войдут в его профиль. Таким образом, страница будет загружаться быстрее

Исследование: Я провел некоторое исследование работы cron. В нем говорится, что он должен иметь доступ к оболочке в веб-хосте. Но есть ли другой способ?

Я использую Mac Mavericks 10.9 Im, используя Laravel

  • 2
    У вас много вопросов по этому вопросу, вы, вероятно, хотите сузить его (вы всегда можете задать несколько вопросов). Зачем проверять дни рождения каждую минуту, а не раз в день? Как «выбор и вставка запроса» ускоряет загрузку страницы? Рассматривали ли вы какие-либо другие способы использования скрипта cron для обновления базы данных (просмотр страницы PHP кажется ненужным)?
  • 0
    вычисление дней рождения на лету, а не создание новой таблицы, к которой вы должны добавить (и не забудьте удалить) с помощью «стандартной» практики
Показать ещё 3 комментария
Теги:
httprequest
laravel-4

1 ответ

0

Работы Cron не подходят для этого.

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

  • Если вы хотите определить день рождения пользователя на каждой странице, которую посещает пользователь, возможно, вам лучше будет загружать день рождения, когда пользователь войдет в систему и будет помнить день рождения, кэшируя его в данных сеанса пользователя или используя memcached.

  • Если вы хотите показать список дней рождения или выполнить какие-либо другие сложные вычисления, вы можете создать представление, чтобы достичь почти той же самой вещи, что вы сделали с вашим выбором и последующей вставкой:

    CREATE VIEW birthdays AS 
    SELECT user_id, birthdate FROM users WHERE birthdate=CURDATE();
    

    Разница в том, что вам нужно только запустить оператор CREATE VIEW один раз (он является постоянным). Вы можете запросить представление, как таблицу, и оно автоматически обновляется при изменении даты или внесении новых пользовательских записей.

    Опять же - это серьезно переборщило, если вам не нужно много спрашивать об этом или делать с ним причудливые вещи.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню