Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP uruchomienie procedury składowanej bez czekania na resultat
exaybachay
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.05.2009

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


Witam.
Jak uruchomić procedurę składowaną z poziomu php tak żeby została
uruchomiona, ale żeby php nie czekało na rezultat wykonania procedury.

Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
qwerty1440
post
Post #2





Grupa: Zarejestrowani
Postów: 39
Pomógł: 2
Dołączył: 10.11.2009

Ostrzeżenie: (20%)
X----


nie da sie
Go to the top of the page
+Quote Post
zegarek84
post
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


odpal procedurę w innym pliku php, na początku daj:
ignore_user_abort(true);
potem z poziomu skryptu wywołaj go np tak:
  1. $fp = fsockopen($host, 80, $errno, $errstr, 30);
  2. if (!$fp) {
  3. echo "$errstr ($errno)<br />\n";
  4. } else {
  5. $out = "GET ".$scierzkaHTTP_bez_hosta." HTTP/1.1\r\n";
  6. $out .= "Host: ".$host."\r\n";
  7. $out .= "Connection: Close\r\n\r\n";
  8. fwrite($fp, $out);/*
  9. while (!feof($fp)) { //w zasadzie to nie musisz czekać na odpowiedź - ale w drugim pliku mogłeś wysłać chociarz nagłówki i tam zamknąć połączenie po czym wykonać to co masz wykonać
  10.   echo fgets($fp, 1); //jak zdanie wyżej - w sumie while może być odkomentowane - zamknij połączenie lepiej w drugim pliku zamiast zrywać za wczasu ale jak wolisz...
  11. }*/
  12. fclose($fp);//a tu zamknięte połączenie po stronie tego skryptu
  13. }


edit na początku drugiego pliku możesz dać np.:
  1. echo 'cokolwiek lub nic';
  2.  
  3.  
  4. header('Content-Type: text/html; charset=utf-8');
  5. header('Connection: close');
  6. header('Content-Language: pl');
  7. header('Content-Length: '.ob_get_length());
  8. header('Pragma: public');
  9. header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
  10. header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
  11. header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
  12. header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
  13. header ('Pragma: no-cache');
  14. header('Expires: 0');
  15.  
  16. // a tu połączenie już zamknięte jest i rób cokolwiek - tak więc ten plik możesz też z przeglądarki odpalić i i on sobie spokojnie swoje będzie robił - a ze skryptu powyższego fragment odpowiedzi mógłbyś odebrać po czym sam zamknąć połączenie - bo odpowiedź dostaniesz od razu zanim skrypt skończy się wykonywać - niżej własciwa część na którą nie chcesz czekać....


Ten post edytował zegarek84 28.12.2009, 22:53:01
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.12.2025 - 17:09