ravczy
23.12.2008, 11:26:52
Witam,
Uruchomiłem pewną aplikacje, która komunikuje się z użytkownikami przy pomocy maili. Problem polega na tym, że gdy serwer smtp jest trochę bardziej obciążony, to wysyłanie wiadomości trwa dość długo (jak na aplikacje webową). Wysyłanie maili powoduje, że ładowanie stron w przeglądarce trwa dość długo, a użytkownicy zniecierpliwieni kilka razy kilkają na przycisk, co powoduje niepotrzebne ponowne przesłanie formularza.
Moje pytanie jest następujące,
Czy istnieje w PHP mechanizm pozwalający kolejkować zadania, np. gdy wiem, że pewna funkcja aplikacji będzie wykonywać się długo, np. wysyłanie maili, to czy można by dodać to do kolejki zadań, a w tym samym czasie strona działa dalej nie oczekując aż ten mail się wyśle.
kbsucha
23.12.2008, 11:36:43
Do kolejkowania zadań i wykonywania ich regularnie sluzy CRON, w PHP nie widzialem takich cudów, jakbybyły to by było bardzo fajnie

pozdr
dr_bonzo
23.12.2008, 11:51:48
1. wrzucasz zadania do bazki (czy gdzie tam) np zapisujesz w bazce emaile
2. cronem je dopiero wysylasz
ravczy
24.12.2008, 16:22:06
No szkoda że apache nie ma takiej możliwości. No cóż pokombinuje z cronem. Dzięki za pomysły.
donar
28.12.2008, 03:22:15
Wystarczy, że po przesłaniu formularza dodasz do cookie lub do sesji, iż ten formularz został już przesłany i przy wykonywaniu skryptu kolejny sprawdzający tą wartość w cookie lub sesji.Dzięki temu jak user kliknie 100 razy w przycisk, dana akcja wykona się raz. Oczywiście możesz użyć do tego baze, pliki, czy co tam chcesz

Pozdrawiam.
Temat: odswiezanie_strony_zapis