Mam serwer MSSQL, na nim procedurę składowaną. Czas wykonania tej procedury jest rozmaity, czasem 10 sekund, czasem 2 minuty.
Mam skrypt PHP używający PDO. Chcę uruchomić procedurę składowaną na serwerze MSSQL w taki sposób, żeby natychmiast po rozpoczęciu wykonywania procedury, bez czekania na jej zakończenie, skrypt kontynuował działanie. Co więcej, jeżeli skrypt zakończy się przed końcem działania procedury, procedura ma się tak czy siak wykonać do końca.
Na razie zrobiłem tak, że skrypt PHP ustawia flagę na serwerze (czyli zmienia wartość w jednym z rekordów w tabeli konfiguracyjnej z "0" na "1"), a procedurka jest wołana ze schedulera, co minutę. Jeżeli stwierdzi, że flaga jest "0" to nic nie robi, a jeżeli jest "1" to odpala część "główną" (tą czasochłonną) i na koniec zeruje flagę.
A ja bym chciał, żeby to php inicjalizowało uruchomienie procedury składowanej, a nie scheduler. Tylko nie bardzo wiem jak...
Wstawienie tego w triggera też nic nie daje, bo triggery na MSSQL-u wykonują się synchronicznie.
W ADO umiem uruchomić zapytanie asynchroniczne - a w PDO nie bardzo, dlatego pytam mądrzejszych.
--
Piotr Lipski