[php&mysql]Czyność po 48h

0

Witam
Chciałbym dodać do swojej strony skrypt który po 48 godzinach od dodania linku aktywującego do bazy mysql(i wysłania emaila) usunie rekord z tym linkiem o ile jeszcze istnieje.

Jak to zrobić?(jakie użyć funkcje?)

Z góry dzięki za odpowiedz

0

cron

0

Lub przy odświeżaniu strony usuwać rekordy starsze niż X. (ew. co jakiś czas - sprawdzać kiedy nastąpiło ostatnie czyszczenie i jeśli było wcześniej niż X, wykonać je)

0
yacooh napisał(a)

cron

A czy da się jakoś zrobić żeby robiło po 48h oraz 30s bo przy użyciu cron można zrobić np o wyznaczonych godzinach

nav napisał(a)

Lub przy odświeżaniu strony usuwać rekordy starsze niż X. (ew. co jakiś czas - sprawdzać kiedy nastąpiło ostatnie czyszczenie i jeśli było wcześniej niż X, wykonać je)

I tak żeby to nie było zależne od odświeżania strony.

0

zapisz do bazy datę dodania, a w momencie próby aktywacji sprawdzaj czy nie upłynęło więcej niż 48h

0
tomkiewicz napisał(a)

zapisz do bazy datę dodania, a w momencie próby aktywacji sprawdzaj czy nie upłynęło więcej niż 48h

Po co trzymac zbedne rekordy w bazie?

0
tomkiewicz napisał(a)

zapisz do bazy datę dodania, a w momencie próby aktywacji sprawdzaj czy nie upłynęło więcej niż 48h

Dzięki to ten problem można rozwiązać jak tak łącząc tą metodę z cron

Ale mam drugi problem potrzeba mi jeszcze odliczanie 30s po stronie serwera, tak żeby nie oszukiwać javy.

0
loczi napisał(a)

Ale mam drugi problem potrzeba mi jeszcze odliczanie 30s po stronie serwera, tak żeby nie oszukiwać javy.

Po co Ci odliczanie? Mozesz pobrac aktualny czas i w petli while sprawdzac, czy uplynelo 30 sekund ale wez pod uwage to, ze skrypty maja ograniczenie nalozone przez serwer na dlugosc wykonywania sie. Czas wykonywania skryptu zalezy juz od serwera.

0

Odliczanie przez taką pętlę? Jako admin serwera zabiłbym klienta, który coś takiego by umieścił. Od czego jest sleep?

P.S. Ograniczenie czasowe jest, mało tego, zazwyczaj właśnie wynosi 30s (domyślna konfiguracja PHP). W związku z w/w używanie takiego skryptu zakończyłoby się za każdym razem jego ubiciem i komunikatem błędu, że skrypt przekroczył czas wykonywania.

0
yacooh napisał(a)

Po co trzymac zbedne rekordy w bazie?

w dzisiejszych czasach miejsce na dysku kosztuje grosze, odwrotnie niż moc obliczeniowa, która z pewnością by była mocno (w porównaniu z kosztem redundancji danych) wykorzystywana przy odpalaniu crona co 1s, czy nawet co 30s + pętla

no i mówię o dodatkowej kolumnie, nie rekordzie

0
tomkiewicz napisał(a)

w dzisiejszych czasach miejsce na dysku kosztuje grosze, odwrotnie niż moc obliczeniowa

Jezeli mowisz o PCtach i workach na dane typu MySQL to owszem, dyski nie sa drogie. Jak wezmiesz pod uwage powazne systemy bazodanowe to przekonasz sie, ze w praktyce macierze dyskowe i rozwiazania klasy enterprise storage system sa czesto jedymi z najdrozszych komponentow calej infrastruktury. Dlatego stosuje sie kompresje danych w bazie. W przypadku malego systemiku dla strony www faktycznie nie jest to rozwiazanie drogie, ale uwazam, ze nie nalezy uczyc sie zlych nawykow.

Poza tym, kto pisal o odpalaniu crona co sekunde :> czy jest to w ogóle mozliwe :> Crona mozna odpalic w takim przypadku raz dziennie, raz na tydzien... w zaleznosci od upodoban.

30s + petla miala sie odnosic do odliczania 30 sekund po stronie serwera a nie odpalania crona czy nie wiem co jeszcze sobie pomyslales. Chociaz faktycznie to jest zla idea, jak juz napisal Adam, nalezaloby uzyc funkcji sleep().

0
tomkiewicz napisał(a)
yacooh napisał(a)

Po co trzymac zbedne rekordy w bazie?

w dzisiejszych czasach miejsce na dysku kosztuje grosze, odwrotnie niż moc obliczeniowa, która z pewnością by była mocno (w porównaniu z kosztem redundancji danych) wykorzystywana przy odpalaniu crona co 1s, czy nawet co 30s + pętla

no i mówię o dodatkowej kolumnie, nie rekordzie

przecież cron może być raz na dzień(czyszczenie bazy), dopisać kolumnę żeby sprawdzał czy minęło 48h

0

@yacooh: w takim razie już wiem, dlaczego rządowe projekty informatyczne działają jak działają (czy raczej nie działają, bo są przeciążone), wszak są "poważne" :)

no ale nie będę się kłócił z profesjonalistą. Skoro mówisz, że redundancja jest złem koniecznym do zwalczania, cache (także redundancja) nie powinno istnieć etc etc, to na pewno tak jest.

1 użytkowników online, w tym zalogowanych: 0, gości: 1