To nie takie proste jak się wydaje, robiłem już takie systemy wiec to co ci mogę poradzić to na początek zrób tak:
- stwórz tabele z aukcjami niech beda to zwykle aukcje ze statusem: active
- wstaw do tabeli 10 milionów rekordów, moga byc takie same
- Zrob skrypt php w ktorym policzysz czas wykonania skryptu i zmien w tych 10 milionach statusy na: close
- Zobacz ile czasu wykona sie skrypt, który pozamyka ci 10 milionow aukcji
- powtorz kroki o2 do 4 tylko teraz wstaw 100 milionow aukcji
- teraz powiedz co ci da cron uruchamiany co 60 sekund ? jesli w trakcie jego wykonania uruchomi sie ponownie skrypt z krona bo ten pierwszy nie ogarnie wszystkich auckji i trzeci uruchomi sie zanim te 2 sie skoncza
Kolejna kwestia crona to za wyjatkiem zamykania aukcji, masz tez tam zamiar wysylac emaile do tych aukcji co sie zakonczyly? do uzytkownikow ? wszystko bedzie robil ten cron ? no nie. Musisz uruchomic z crona skrypt ktory po uruchomieniu zmienia sobie flage na 1 i wstawia sobie do kolejki w larawerze to co ma pozamykac. A system kolejki uruchamia job i tam wysyla maile zmienia statusy itd. wiec te wyslane aukcje z crona zmieniasz status na queue_to_close a kolejka wysyla maile zmiania ststu na zamkniete itd.
Nie wiem też o jakiej różnicy mowisz jakies 12 - 24 godziny ? o co tu chodzi ?
No i kazda aukcja na ktora ktos wejdzie musi byc indywidualnie sprawdzana czy jej czas minal. jesli tak to wstaw do kolejki do zamkniecia i pokaz status ze aukcja uz sie zakonczyla
i na koniec musisz obsluzyc w ajaxie tych co otworzyli aukcje o 9 rano i maja ja otwarta do konca aukcji, zeby ajax zamykal taka aukcje , oczywiscie pogladowo bo kazde pobicie w aukcji i tak jest sprawdzane po stronie serwera.