Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dlugi czas wykonywania skryptu + przekierowanie
andycole
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 14.12.2004

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


Witam,

Mam skrypt do wysylki mailingu.
Baza maili moich uzytkownikow liczy ponad 22 tysiace, wiec radze sobie tak:

set_time_limit(300);
pobierz 80 maili sposrod tych do ktorych jeszcze nie wyslano
jezeli sa maile to
w petli
wyslij i zapisz, ze wyslano
sleep(3);
header(odswiezenie strony)
jezeli nie ma juz maili
header(strona glowna wysylki mailingu)

I problem tkwi w tym, ze zawsze po ok 3 minutach (+/- 200 sekund) wywala mi w przegladarce:

Kod
Nieprawidłowe przekierowanie
Firefox wykrył, że serwer przekierowuje żądanie tego zasobu w sposób uniemożliwiający jego ukończenie.


Czy po przekierowaniu header czas wykonania skryptu nie liczony jest na nowo?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Thorang Hoog
post
Post #2





Grupa: Zarejestrowani
Postów: 41
Pomógł: 9
Dołączył: 8.02.2009

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


Cytat(andycole @ 19.12.2009, 10:46:29 ) *
A czy ten problem z czasem moze byc spowodowany przez firefoxa? (IMG:style_emoticons/default/smile.gif) ktory po prostu nie moze wczytywac strony niz X sekund?


Firefox wykrywa kiedy przekierowujesz stronę w nieskończoność (Przynajmniej w jej mniemaniu (IMG:style_emoticons/default/winksmiley.jpg) )
Nie wiem jak zadziała dodanie zmiennej typu get która by się zmieniała.

Kiedy czytałem wasze wypowiedzi na temat crona czy przekierowań tkneła mnie myśl żeby wykorzystać technologię AJAX.
Najpierw użytkownik przesyła dane formularzem do skryptu. Ten zapisuje treść maila do bazy danych i osoby do których należy wysłać.
Wczytana strona zawiera w JavaScripcie informacje o ilości maili do wysłania i asynchronicznie wywołuje skrypt na serwerze który wysyła maile przez czas trochę krótszy od maksymalnego i zwraca liczbę wysłanych maili. Oczywiście osoby do których już wysłano zostały by usunięte z bazy danych.

Oprawił bym to w ładny pasek postępu i elegancki przycisk anuluj ;P
Go to the top of the page
+Quote Post
jajcarzd1
post
Post #3





Grupa: Zarejestrowani
Postów: 215
Pomógł: 19
Dołączył: 24.12.2003
Skąd: Przemyśl

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


Cytat(Thorang Hoog @ 20.12.2009, 16:11:49 ) *
Kiedy czytałem wasze wypowiedzi na temat crona czy przekierowań tkneła mnie myśl żeby wykorzystać technologię AJAX.
Najpierw użytkownik przesyła dane formularzem do skryptu. Ten zapisuje treść maila do bazy danych i osoby do których należy wysłać.
Wczytana strona zawiera w JavaScripcie informacje o ilości maili do wysłania i asynchronicznie wywołuje skrypt na serwerze który wysyła maile przez czas trochę krótszy od maksymalnego i zwraca liczbę wysłanych maili. Oczywiście osoby do których już wysłano zostały by usunięte z bazy danych.

Oprawił bym to w ładny pasek postępu i elegancki przycisk anuluj ;P


Ja stosuję właśnie takie rozwiązanie przy pomocy xajaxa-a. W pierwszym kroku klient wypełnia pola tematu i treści i klika wyslij. Przy pierwszym odpaleniu funkcji dane z formularza są zapisywane do sesji a następnie jest pobierany jeden email z bazy lub jakaś porcja adresów, dokonywana jest wysyłka po czym ponownie jest wywoływany skrypt z parametrami od kóre maila ma zacząc, ile już się wysłało, ile nie, a jako że działa to asynchronicznie to na bieżąco te wszystkei dane mam wyświetlane i aktualizowane. Może nie jest to najlepsze rozwiązanie ale działa.

Pozdro.
Go to the top of the page
+Quote Post

Posty w temacie
- andycole   dlugi czas wykonywania skryptu + przekierowanie   5.12.2009, 15:57:22
- - darko   Pokaż kod, zgaduję, że robisz przekierowanie do te...   5.12.2009, 16:02:25
- - andycole   Skrypt jest przydlugawy, ale jest jak mowisz, do t...   5.12.2009, 16:04:23
- - darko   set_time_limit ($nowy_czas_w_sekundach) lub i...   5.12.2009, 16:10:23
- - andycole   wczesniej mialem set_time_limit(600); ale nie dzia...   18.12.2009, 00:22:12
- - thek   Ja robię to w sposób "oflagowany". Wybie...   18.12.2009, 09:48:28
- - Pilsener   A po co jakiś header, sleep itp. Nie prościej użyć...   18.12.2009, 10:24:27
- - andycole   Dzieki za konkretne odpowiedzi. Co do flag, zamia...   18.12.2009, 11:40:24
- - Pilsener   Wszystko zależy od tego, czy Twój hosting daje Ci ...   18.12.2009, 12:20:25
- - andycole   Mam VPS'a,   18.12.2009, 12:27:00
- - thek   Pilsener... Pogadaj sobie o Cronie w sytuacji gdy ...   18.12.2009, 13:15:07
- - Pilsener   Ale przecież sam napisałeś Cytatmasz limit skryptu...   19.12.2009, 00:25:41
- - andycole   Dajcie juz spokoj thek, powiedz mi lepiej jak prz...   19.12.2009, 02:33:56
- - darko   Zawsze możesz zrobić jeszcze tak: 1. sprawdzić ile...   19.12.2009, 03:05:41
|- - andycole   Cytat(darko @ 19.12.2009, 03:05:41 ) ...   19.12.2009, 10:46:29
- - Thorang Hoog   Cytat(andycole @ 19.12.2009, 10:46:29...   20.12.2009, 15:11:49
|- - andycole   Cytat(Thorang Hoog @ 20.12.2009, 15:11...   20.12.2009, 15:36:51
|- - jajcarzd1   Cytat(Thorang Hoog @ 20.12.2009, 16:11...   22.12.2009, 11:59:41
- - kacka   Pamiętaj tylko że mailing takiej ilości wiadomości...   20.12.2009, 15:21:49
- - Thorang Hoog   Cytat(andycole @ 20.12.2009, 15:36:51...   20.12.2009, 21:15:14
- - za017   Przeglądarki blokują powtarzające się polecenia pr...   21.12.2009, 08:01:07
- - andycole   za017, "pomógł". Twój pomysł i skrypt po...   22.12.2009, 21:02:24
- - za017   Dzięki za plusik. To duża satysfakcja, że coś zrob...   23.12.2009, 08:41:16


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: 14.10.2025 - 15:11