Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Prośba o radę - koncepcję, system bilingowy
mosky
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.12.2004

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


Witam,

Prowadzę serwis turystyczny i mam kilkudziesięciu klientów którzy dają mi na mojej stronie ogłoszenia, reklamy itp.
Odbywa się to zasadzie abonamentu - czyli np. włączam komuś reklamę na rok lub pół roku lub kwartał a on raz na okres opłaca mi abonament za tę usługę.

Piszę teraz na własne potrzeby system, który pilnowałby mi terminów, wystawiał fakturki proforma, powiadamiał mailem kogo trzeba o fakcie fakturowania itd.

Całości koniec końców pilnuje jeden plik uruchamiany cronem raz dziennie.
W pliku tym wykonuję kilka zadań i mam wrażenie, że nie jest on optymalnie przemyślany od strony wydajności ponieważ z logu, który sobie tworzę podczas jego wykonania widzę, iż nie wszystkie zadania wykonywane są płynnie.

Krytycznym momentem jest jak sądzę moment gdzie:
- pobieram z bazy wszystkie abonamenty
- rekordy jeden po drugim sprawdzam z pomocą:

  1. <?php
  2.  
  3.  
  4. $pytanie="SELECT * FROM ".$prefix."_abonamenty";
  5. $sql=mysql_query($pytanie);
  6.  
  7. while ($abo=mysql_fetch_object($sql))
  8. {
  9.  
  10.  
  11. }
  12.  
  13.  
  14. ?>


- jeśli w danym rekordzie występuje konieczność fakturowania - sprawdzam to po datach: dzisiejszej i przechowywanej w tabeli abonamentów (końca abonamentu)

wykonuję kolejne kroki:
1) wygenerowanie faktury i dodanie jej do bazy
2) wygenerowanie faktury do pfd (robię to za pomocą klasy którą znalazłem w sieci a działa ona na zasadzie takiej iż na podstawie htmla generuje pdfa - czyli najpierw funkcją generuję sobie kompletny html faktury z pełnymi danymi a następnie zapodaję to do tej klasy czego wynikiem jest plik pdf)
3) plik pdf zapisuję na dysku w katalogu tymczasowym
4) uaktualniam dany abonament o informację iż został on zafakturowany
5) za pomocą pear mail (pear-mime) tworzę maila którego wysyłam do klienta i do mnie (bcc) - do maila dodaję załącznik pdf (wygenerowany wcześniej)
6) kasuję z dysku pdf który już nie jest potrzebny

Punkty 1-6 wykonuję w pętli while() i z tego co widzę w logu skrypt przycina się podczas fakturowania więcej niż 2 abonamentów. Przycina się na wysyłaniu maila. Generowanie pdf zajmuje około 2 sekund

I teraz pytanie - jak od strony koncepcyjnej podejść to tego tematu tak by mój ISP nie wywalił mnie z serwera jak zapodam do zafakturowania jednocześnie powiedzmy 30 abonamentów (obciążenie serwera) a dwa by skrypt wykonywał się płynnie.

Ten post edytował mosky 4.05.2006, 09:03:03
Go to the top of the page
+Quote Post

Posty w temacie


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: 22.08.2025 - 11:58