Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Фоновый запуск функции

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
SooR
Отправлено: 09 Июля, 2010 - 21:06:55
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




Добрый день уважаемые.

Пишу скрипт для радио, сервер на IceCast, историю эфира не выводит, поэтому надо писать ручками.

Есть скрипт на php, который парсит xml со статистикой сервера и текущим треком, выводит эти данные когда пользователь зашел на сайт радио.

Как организовать запись текущего трека в базу, если никто не заходил на сайт и не вызывал скрипт к работе?

Проще говоря - как заставить сработать скрипт без вызова его клиентом?
 
 Top
SAD
Отправлено: 09 Июля, 2010 - 21:30:54
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




cron?
 
 Top
SooR
Отправлено: 09 Июля, 2010 - 21:37:12
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




В командах вообще не шарю.
Хотелось бы из под самого php тем более крона нет, сейчас на денвере делаю.
Нашел мимолетом способ

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //Игнорировать обрыв связи с браузером
  3. //Время работы скрипта неограничено
  4. //Пауза между действиями, в секундах
  5. $interval=10*60;
  6. do{
  7.    //Программный код, который должен выполняться
  8.    //...
  9.  
  10.    //Остановка скрипта, работающего в фоновом режиме
  11.    if (file_exists("stop.txt")) break;
  12.    //Пауза
  13.    sleep($interval);
  14. }while(true);
  15. ?>


Такая реализация будет нормальной?
 
 Top
ArchAngel
Отправлено: 09 Июля, 2010 - 22:11:22
Post Id


Новичок


Покинул форум
Сообщений всего: 62
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




оО давно хотел такое сделать.
спасибо за идею.

но тут надо добавить в начало скрипта вот это:
PHP:
скопировать код в буфер обмена
  1.  
  2. $ip_access = "192.168.0.1";
  3. $getip = getenv("REMOTE_ADDR");
  4. if($ip_access !== $getip) die("Access deid!.");


В: Зачем?
О: потому что если много раз зайти на скрипт то скрипт будет автоматом обновлятся и будет грузить веб сервер.

(Отредактировано автором: 09 Июля, 2010 - 22:20:46)

 
 Top
SooR
Отправлено: 09 Июля, 2010 - 22:56:58
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




ArchAngel

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

Но тут камни под водой: многие хосты режут анлим выполнения сценария, на античате почитал что обходят данный запрет путем введения 99999999 в set_time_limit();
или htaccess.
 
 Top
JustUserR
Отправлено: 10 Июля, 2010 - 03:38:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




ArchAngel пишет:
Потому что если много раз зайти на скрипт то скрипт будет автоматом обновлятся и будет грузить веб сервер
Это означает что схема запуска PHP-скрипта в режиме работы типа deamon-сервиса через web-окружение не является оптимальной - если вам необходимо взаимодействие с HTTP-клиентом то можете использовать отдельные транспортные PHP-скрипты и отдельный CGI-скрипт deamon-сервиса который работает в фоновом режиме вне зависимости от web-сервера
Конечно в транспортном PHP-скрипте можно огранизовать дополнительную проверку на тот случае если ваш deamon-сервис упадет - и соответственно осуществить его перезапуск При этом еще необходимо правильно организовать запуск процессов от имени нужных пользователей


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB