2015-03-02 2 views
0

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

$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. В нем говорится, что он должен иметь доступ к оболочке в веб-хосте. Но есть ли другой способ?

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

+2

У вас есть много вопросов по этому вопросу, вы, вероятно, захотите сузить его (вы всегда можете задать несколько вопросов). Зачем проверять дни рождения каждую минуту, а не раз в день? Как «выбор и вставка запроса» ускоряет загрузку страницы? Рассматривали ли вы какие-либо другие способы использования скрипта cron для обновления базы данных (просмотр страницы PHP кажется ненужным)? – Jordan

+0

, вычисляя дни рождения на лету, вместо того, чтобы создавать новую таблицу, которую вы должны добавить (и не забывайте удалить), чтобы быть «стандартной» практикой –

+0

Добро пожаловать в SO, но, пожалуйста, избегайте устаревших функций 'mysql_ *'; вместо этого используйте PDO/MySQLi – Raptor

ответ

0

Cr Jo не правильный инструмент для этого.

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

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

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

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

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

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

Смежные вопросы