Witam
Mam pewien problem i nie wiem jak się za to zabrać, najczęściej jak wykonujemy jakiś skrypt php to przeglądarka czeka aż sie zakończy aby wyświetlić wynik/odpowiedź.
Co zrobić aby skrypt się wykonywał nie czekając na odpowiedź?
Np.
użytkownik na stronie naciska przycisk wyślij maila i w tym czasie w ciągu najbliższych 2 minut mail jest wysyłany co 2 sekundy do konkretnej osoby, natomiast użytkownik moze wyłączyć strone/przegladarka a skrypt dalej sie wykonuje po stronie serwera, jak takie coś wykonać?
wiem ze jest cron, ale cykliczne wykonywanie zadań mnie nie interesuje
Z góry dziękuje za nakierowanie na jakaś pomoc
0
1
- użytkownik odwiedza stronę wykonaj_jakies_zadanie.php - np. wysyłka 200 maili - serwer zadanie zapisuje do kolejki i od razu zwraca użytkownikowi informację - wszystko jest ok
2. tu normalny człowiek użyłby crona, do wykonywania zadań z kolejki
- Ciebie jednak cron nie interesuje, więc gdy przeglądarka odbierze komunikat, że wszystko jest ok - niech np. ajaxem zleci osobnemu skryptowi wykonywanie zadań z kolejki, a skrypt na początku niech wywołuje funkcje
ignore_user_abort
- tu jest twój wybór czy czekasz na rezultat, czy w ogóle wywołujesz ajaxa i ustawiasz timeout na 1 sekundę - żeby przeglądarka w ogóle nie przejmowała się już progressem zadania
0
ok ok, moze być i ten crone, dodam do bazy tych 200 rekordów, ale jak zlecić wykonanie skryptu w tle
0
Przecież Ci napisałem w pkt 3.
0
yhy, zrobiłem to curlem i wszystko śmiga bez problemu,
pozdrawiam i dzięki za pomoc.
0
mateuszm31 napisał(a):
yhy, zrobiłem to curlem i wszystko śmiga bez problemu,
pozdrawiam i dzięki za pomoc.
A mógłbyś wkleić rozwiązanie, tak dla potmoności?
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.