Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Cron] - Jest możliwość dodania zadań przy instalacji skryptu?
Forum PHP.pl > Forum > PHP
SN@JPER^
Witam,

zastanawiam się, czy jest możliwośc(jak?), dodać zadania CRON przez skrypt. Np. poprzez plik install.php przy instalacji danego skryptu?
erix
W 90% przypadków - nie.

Najczęściej dostęp do crona jest realizowany przez panel administracyjny konta, więc nie jest to takie proste, a jak już byś się uparł - byłoby wymagane podanie danych do panelu, na co sporo osób się po prostu nie zgodzi. winksmiley.jpg
SN@JPER^
Czyli jedynym sposobem jest ręczne dodanie zadań?
erix
Jedynym PEWNYM.

W praktyce - możesz napisać wrapper do DirectAdmina, CPanela, czy WebMina, ale zauważ, że wymagana będzie autoryzacja danymi do konta, co na 90% wzbudzi podejrzenia, to raz. Dwa - pozostaje jeszcze kwestia panelów autorskich.

Bezpośredniego dostępu do crontab raczej nie dostaniesz.

Pozostaje jeszcze kompromis, jak np. w Wordpressie - zaimplementowanie cron w ramach skryptu, ale to zależy, do jak ogarniętej grupy docelowej uderzasz. Jeśli do kompletnych laików, jest to sposób do rozważenia.
SN@JPER^
Cytat(erix @ 26.03.2010, 14:45:35 ) *
Pozostaje jeszcze kompromis, jak np. w Wordpressie - zaimplementowanie cron w ramach skryptu, ale to zależy, do jak ogarniętej grupy docelowej uderzasz. Jeśli do kompletnych laików, jest to sposób do rozważenia.


To mi się najbardziej podoba, tak raczej do laików.

Rozszerzyłbyś ten wątek?
erix
Zajrzyj do źródeł Wordpressa.
SN@JPER^
Zbytnio z pliku wp-cron.php nic nie zrozumiałem, ale znalazłem na forum taki kodzik:

  1. $interval = 5;
  2.  
  3. do
  4. {
  5. sleep($interval);
  6. $file = fopen(date('His').'.txt', 'w');
  7. fclose($file);
  8. }
  9. while(true);


Jest on bezpieczny dla serwera? Włączyłem to na localhost i co 5 sek tworzy mi plik. Wrazie czego jak to wyłączyć na normalnym serwerze?
erix
No można i tak, ale jeśli serwer jest skonfigurowany tak, że komunikuje się z PHP via FastCGI, to jeden proces jest zatkany tylko dlatego, że działa na nim imitacja crona.

Miałem na myśli coś takiego, że przy każdej odwiedzinie sprawdzany jest czas i porównywany z listą zadań. Jeśli wykonane -> odfajczone. Fakt, nie będzie wtedy dokładności (przy małych odwiedzinach może być duży poślizg czasowy), ale lepsze to niż nic.
SN@JPER^
Załóżmy, że wchodzi user na strone, skrypt sprawdza czas i wykonuje jakieś tam zadanie, czy podczas wykonywania tego zadania traci user bo strona się dłużej ładuje?
erix
Tak. PHP nie ma wielowątkowości (no chyba że odpalisz inny interpreter via cURL), ale o tym są artykuły na Sieci.
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.