![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 14.09.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
zastanawiam się jak można zrobić automatyczną zmianę rekordu w bazie po przekroczeniu zadanej daty. Czyli chodzi mi o coś co można spotkać np. na stronach z ogłoszeniami - mam w tabeli m.in. kolumny status i data_zakonczenia i chciałbym żeby po 'przeterminowaniu' danego ogłoszenia zmienił się jego status (np. z aktywne na zakończone). Myślałem o Cronie lub Event Scheduler, ale nie wiem czy częste uruchamianie (może nawet co sekundę) to dobre rozwiązanie gdy np. najbliższe ogłoszenie kończy się za tydzień... Czy są jakieś lepsze sposoby? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Zasadniczo możesz się pozbyć się pola status. Do listingu możesz pobierać np. tylko te ogłoszenia w których data zakończenia jeszcze nie nastąpiła, a przy wyświetlaniu szczegółów ogłoszenia status wyświetlasz też stosownie do daty zakończenia.
-------------------- Jeśli ten post pomógł to kliknij przycisk
![]() Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ... |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Możesz sobie wykorzystać CRONa, ale na jednym serwerze to się zrobi lipa z wydajnością.
Status userowi zmieniasz za pomocą JS, pobierając czas do zakończenia i odliczając to po jego stronie, plus przy każdym odświeżeniu strony pobierasz realny czas do zakończenia ogłoszeń widocznych na stronie, bo jakieś obsunięcia mogą się zawsze pojawić. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 14.09.2014 Ostrzeżenie: (0%) ![]() ![]() |
Do samego wyświetlania rekordów faktycznie to starczy, problem pojawia się gdy chcemy aby w chwili zakończenia pojawiała się jakaś akcja (np. wysłanie maila do usera).
A może coś takiego: cron np. co godzinę uruchamia skrypt sprawdzający czy w przeciągu tej godziny kończy się któreś ogłoszenie -> jeżeli tak, to odlicza pozostały czas i po jego upływie wykonuje akcje. A jak takie zadania są realizowane w praktyce, np. na allegro? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 79 Dołączył: 25.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Załóż indeks na kolumnę data_zakonczenia. Do tego cron z wysyłaniem maila np. co 2-10 min. Zresztą jak nie masz dużego ruchu lub milionów rekordów to tragedii z wydajnością pewnie nie będzie nawet jak puścisz co minutę.
Nie wydaje mi się aby Allegro wysyłało maile natychmiast po zakończeniu aukcji, zwykle czeka się kilka minut, tak samo trzeba czekać zanim w panelu administracyjnym zmieni się status aukcji np. z wystawione na zakończone. -------------------- Jeśli ten post pomógł to kliknij przycisk
![]() Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 14.09.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc, będę kierował się tą droga
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 12:49 |