Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt dzialajacy w tle
Forum PHP.pl > Forum > Gotowe rozwiązania
oglos
Mam skrypt w php, ktory sprawdza co minute czy pojawil sie nowy rekord w tabeli.

Odbywa sie to w ten sposob, ze ma ustawione odswiezanie na 1 minute, tylko wiadomo, ze musze wtedy miec otwarta przegladarke z tym skryptem. Czy jest mozliwe, aby ten skrypt dzialal w tle, nie za pomoca przegladarki.

Mam zainstalowany serwer na Win98
itsme
na serwerze linuxowym jest szansa aby skrypt byl wywolany co minute
zas pod windowsem raczej nie ma

powiedz dlaczego chcesz tak robic opisz problem moze znajdziemy inne rozwiazanie

pozdrawiam
scanner
Na windowsie możesz wesprzeć się harmonogramem zadań. Co prawda nie próbowałem tego, ale może sie udać.
Seth
Mozna to wykombinowc tak:
> Jak napisal scnner - harmonogramem. W polu wybieramy php.exe i podajemy parametry naszej strony.

> Mozna tez uruchomic w ten sam plik php (podajac parametry naszej strony) z lini polecen. Skrypt musial by miec jednak nie konczaca sie petle i wylaczony max czas uruchomienia. Zamknac skrypt mozna bylo by np edytujac odpowiednie pole w tabli czy pliku, ktory byl by odczytywany podczas dizalania skryptu.
spenalzo
A nie wystarczy dać funkcję ignore_user_abort(TRUE) ?
scanner
Cytat
A nie wystarczy (...)
Nie, ponieważ chodzi o skrypt działający w tle a nie bez przerwy.
spenalzo
Cytat
Cytat
A nie wystarczy (...)
Nie, ponieważ chodzi o skrypt działający w tle a nie bez przerwy.

A jak zrobic coś takiego:
[php:1:650504366c]
<?
// określenie czasu wykonania na nieskończoność
// i ignorowanie zatrzymania skryptu
ignore_user_abort(TRUE);
set_time_limit(0);

// nieskończona pętla
while($i=1);
{

// 5 minut
sleep(300);
include("skrypt.php");
}
?>
[/php:1:650504366c]
Co Wy na to? To taki ogólny schemat ideowy.
Problem może być przy restarcie serwera...
scanner
jeden mały błąd i Twoja nieskończona pętla zrobi Stack Overflow.
Skrypt powinien się uruchamiac w okresloinym czasie (co okreslony czas), sprawdzać dane, informowac o ewentual;nych zmianach, kończyć swoje działanie.

Na Linuxie: cron
Na Windows: harmonogram zadań.

Wszystko inne to moim zdaniem kombinowanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.