Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak uruchomić plik z poziomu php na takiej zasadzie jak cron
Norbit_24
post
Post #1





Grupa: Zarejestrowani
Postów: 163
Pomógł: 2
Dołączył: 7.03.2009

Ostrzeżenie: (0%)
-----


Jak uruchomić plik z poziomu php na takiej zasadzie jak cron.. czyli żeby wykonywał się w tle.
Albo jak uruchomić crona z poziomu php?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Norbit_24
post
Post #2





Grupa: Zarejestrowani
Postów: 163
Pomógł: 2
Dołączył: 7.03.2009

Ostrzeżenie: (0%)
-----


Nie wiem jak takie coś zrobić.

Najlepszym rozwiązaniem będzie w tym przypadku php.
Dalej jest aktualne, proszę pisać.


// edit:
Tak więc skrypt dopisał mi wookieb za co mu dziękuje. Działa tak jak chciałem.

  1. <?
  2.  
  3. include('dane.php');
  4.  
  5.  
  6. $beginScriptTime = time(); // czas rozpoczecia
  7.  
  8. $maxTiime = 60; // maksymalny czas wykonywania skryptu
  9. $checkIntervall = 2; //Co ile sekund ma sprawdzic, czy nie nadszedl czas
  10.  
  11. $downloadFiilesLimit = 5; // limit sciaganych plikow na raz
  12. while( (time() - $beginScriptTime) < $maxTime )
  13. {
  14. // liczymy ile sie sciaga
  15. $result = mysql_query('SELECT count(id) as ile FROM kolejka WHETE pobieram=1');
  16. $row = mysql_fetch_assoc($result);
  17.  
  18. // czy przebil limit
  19. if($result['ile']>$downloadFilesLimit)
  20. {
  21. // czekamy sobie
  22. sleep($checkInterval);
  23. continue;
  24. }
  25.  
  26. // szukamy pierwszego zadania
  27. $result = mysql_query('SELECT id,link,czas FROM `kolejka` WHERE pobieram=0 LIMIT 1');
  28. $count = mysql_num_rows($result);
  29.  
  30. if($count<0)
  31. {
  32. // jezeli nie ma zadania czekamy
  33. sleep($checkInterval);
  34. continue;
  35. }
  36.  
  37. $r = mysql_fetch_assoc($result);
  38. $linki = $r['link'];
  39.  
  40. preg_match('#http\://(.*"")?\.wrzuta\.pl/audio/([0-9A-Za-z_-]""*)/?([0-9A-Za-z_,-""]*)?#', $linki, $url);
  41.  
  42. if(isset($url[0]))
  43. {
  44. // oznaczamy ze wlasnie pobieramy
  45. mysql_query('UPDATE kolejka SET pobieram = 1 WHERE id = '.$r['id']);
  46. // rozpoczynamy sciaganie
  47. $startDownload = time();
  48. @copy('http://'.$url[1].""'.wrzuta.pl/sr/f/'"".$url[2], "../down2/$url[3].mp3");
  49. $link_id = $r['id'];
  50.  
  51.  
  52. // nie usuwamy rekordu tylko
  53. // a) albo go przenosimy do tabeli z logami
  54. // b) oznaczamy ze zakonczony
  55.  
  56. // chyba lepsze bedzie a
  57.  
  58.  
  59. $downloadTime = time() - $startDownload;
  60. // jezeli czas sciagania byl tak krotki (albo byl jakis blad), ze nie przekroczylimy czasu co ile ma sprawdzac
  61. // to czekamy
  62. if($downloadTime<$checkInterval)
  63. {
  64. sleep($checkInterval - $downloadTime);
  65. }
  66. }
  67. else
  68. {
  69. // bledny link to czekamy
  70. sleep($checkInterval);
  71. }
  72. }
  73. ?>


Ten post edytował Norbit_24 5.03.2010, 08:45:32
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 17:16