Archiwum: Luty 2011

Koncepcje po byku…

czwartek, 10.02.2011

Siedzę siedzę sobie spokojnie w domku … i pracuję, bo do pracy po wypadnięciu dysku nie dałem rady się doturlać. Akurat zmieniałem dla szefa szablon newslettera i w zasadzie kończyłem pracę, kiedy dostałem OPR, że ktoś puścił newsletter i nie dość że wadliwego to jeszcze kilkadziesiąt . Oczywiście, od razu na mnie (bo kiedyś cron-a źle ustawiłem ;) ), a że wziąłem to do siebie, to szukałem swojego błędu. Na logikę szablon nie powinien wpłynąć na takie kuriozalne błędy, ale dziarsko zabrałem się do sprawdzania tagów HTML. W międzyczasie okazało się, że … strona z której został wysłany newsletter nie działa!!! Czy można sobie wyobrazić coś bardziej kuriozalnego? Jak najszybciej wyłączyłem cron-y. Kolega wyłączył newslettera i strona znowu się pojawiła, a ja zrobiłem sobie fajrant z pół godzinnym poślizgiem ;).

Kilka dni później dostałem zadanie poprawy i włączenia już poprawionej wersji do defaul-towej wersji naszego CMS-a. W trakcie studiowania plików, które zostały wyłączone z cron-a okazało się, że … nie są one odpowiedzialne za newsletter-a. Fajnie –  pomyślałem. Ciekawe jak do jasnej cholery to działa?

W trakcie dalszego research-u wyjaśniło się dlaczego cała strona umarła po włączeniu newsletter-a. Przy każdym włączeniu strony, dokonywała się wysyłka newsletter-a. W tym wypadku występował akurat błąd i oczywiście strona padała.

Znalazłem dobrze działającą wersję skryptu. Zrobiłem try{} catch{} na fragmencie odpowiedzialnym za wysyłkę i dodatkowe filtrowanie adresu email przed wysłaniem. Przy wysyłce jednak okazało się, że doszły 2-3 emaili do każdego z użytkowników.

Okazało się, że w dziesiątkach CMS-ów wysyłka jest podłączona w taki sposób metoda pobiera całą listę zapytaniem „SELECT * FROM wysylka” subskrybentów dla danego newsletter i potem idzie pętlą wysyłając i usuwając wpis w bazie danych.

A jaki z tego morał ?:

  • Jeśli ty modyfikowałeś kod po raz ostatni to ty dostaniesz w dupę za to, że ktoś nie pomyślał
  • Nigdy to, ale nigdy nie myśl, że coś jest super przemyślane bo działa od jakiegoś czasu i nikt nie zauważył błędu
  • Jeśli coś poprawiasz albo napiszesz, zawsze staraj się to.. spieprzyć, bo wtedy „zwiększasz sumę swojego ubezpieczenia”
  • Nikt, ale to nikt nie robi samych mądrych i przemyślanych rzeczy

„Co cię nie zabije, to cię … w idiotyczny sposób zestresuje.” :D