![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 10.03.2003 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Na swojej stronie mam system subskrypcji, dla ludzi którzy podadzą swojego maila rozsyłana jest wiadomość w momencie gdy ktoś z użytkowników doda na stronę nową informację. Niestety obecne rozwiązanie jest dosyć uciążliwe dla tych osób które informację dodają , a mianowicie problem tkwi w tym że niektórzy mają po 200 - 300 subsryptorów (nie wiem jak to napisac ) . Czas potrzebny na pobranie danych o mailach i wysłanie na każdy adres odpowiedniego maila , przekracza maksymalny czas oczekiwania przeglądarki na odpowiedź z serwera. Co za tym idzie użytkownik zamiast zobaczyć potwierdzenie dodania informacji widzi "Nie można wyświetlić strony ...". Wpadłem na pomysł żeby sam proces rozsyłania maili był realizowany w ten sposób , że kawałek kodu odpowiedzialny za rozsyłanie umiesciłbym w oddzielnym pliku który byłby wykonywalny z powłoki i nie zwracał żadnych informacji zwrotnych do użytkownika, (tak jakby wykonywany byłby w tle) . Nie wiem czy dobrze wytłumaczyłem o co mi chodzi , może dam tu prosty przykład . Użytkownik dodaje info, info wpisywane jest do bazy danych , jeżeli wpisało się ok , wysyłane jest polecenie do systemu "uruchom skrypt wyslij.php z parametrem user = nazwa uzytkownika" a kolejna linijka kodu to potwierdzenie dodania wpisu do bazy wyświetlana w przeglądarce użytkownika. W tym miejscu chciałbym się spytać , czy to wogle jest do zrealizowania i czy rozwiąże to problem przekraczania czasu na odpowiedz z serwera . No i ew czy jest jakieś inne , lepsze, bardziej eleganckie , ogólnie lepsze rozwiązanie takiego problemu . Problem ten pojawia się gdy użytkownik ma "zapisanych na siebie" z 100 - 200 maili . Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Wybranie adresów z bazy i wysłanie meila zajmuje więcej niż 30 sekund?
Masz niezły bajzel w kodzie moim zdaniem. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 12.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
albo serwer smiga na jakims starym procku:)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 27.04.2004 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Mam inną propozycje.
Maile wysyłasz w pętelce, więc w pętelce możesz także sprawdzać czas działania skryptu. Jeśli przekroczy powiedźmy 25 sekund robisz zrzut tego co pozostało do sesji, a użytkownikowi pokazujesz informację (może być w %) ile już się wysłało i robisz odświeżenie strony i wysyłasz kolejne dane. Może nie jest to jakiś super wyrafinowany sposób ale pozwili użytkownikowi kontrolować proces wysyłania i zapewni mu podgląd stanu wysyłki. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 10.03.2003 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Cytat(scanner @ 2005-04-06 07:24:59) Wybranie adresów z bazy i wysłanie meila zajmuje więcej niż 30 sekund? Masz niezły bajzel w kodzie moim zdaniem. Kod odpowiedzialny za wysyłke wygląda tak
Nic innego nie przyszło mi do głowy , nie wiem czy jest tu jakiś bałagan , aż tak zaawanosowany nie jestem by to ocenić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Nie wysyłaj tych maili w pętli.
Zainteresuj się jakąś klasą, która robi to na poziomie bezpośredniej komunikacji z serwerem SMTP. Np.: PHPMailer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 10.03.2003 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Cytat(mike_mech @ 2005-04-06 12:26:30) Nie wysyłaj tych maili w pętli. Zainteresuj się jakąś klasą, która robi to na poziomie bezpośredniej komunikacji z serwerem SMTP. Np.: PHPMailer Za Twoją radą zainteresowałem się to klasą , jednak nie wiem jak ją wykorzystać aby nie używając pętli wysłać jednego maila do wielu osób (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 10.03.2003 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
A może wiesz czy jest jakiś sposób żeby "przysłonić" te wszystkie adresy email np zeby zamiast serwer@jede.pl; serer@dwa.pl ... bylo tylko np Subskrypcja (w polu do jak się list np w outlooku otworzy)
Jakby to dało sie jeszcze zrobić byłoby po prostu super (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Przyznam że nie za bardzo wiem o co ci chodzi ( nie używam Outlook'a ), ale podejrzewam że o to :
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 10.03.2003 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
O coś takiego , dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 19:27 |