Cytat
Nawet lepszym sposobem będzie, który będzie nawet przyciągał graczy do gry ustawienie w cron tak aby dodawało te 300 surowców tylko zalogowanym użytkownikom.
O ile dobrze rozumiem, to każdy ma dostawać te surowce, a nie tylko zalogowani. Dlatego właśnie zrezygnowałbym z crona dla takiego zadania. Często w grach przeglądarkowych spotykany jest mechanizm, który działa tak, żeby kliknąć i wrócić za np. godzinę, by np. zobaczyć wynik walki, zlecić postaci nowe zadanie itd.
Po prostu w bazie danych, w miejscu gdzie trzymane są dane użytkownika, dodałbym kolumnę, która odpowiadałaby za czas ostatniej aktualizacji surowców. Wtedy przy każdorazowym sprawdzaniu, czy użytkownik jest zalogowany, sprawdzałbym też czy nie minęło więcej niż (wielokrtoność) 30 minut od ostatniego dodania surowców. Następnie dodawałbym do kolumny z ostatnią aktualizacją (wielokrotność) 30 minut, a także do surowców (wielokrotność) 300 jednostek. Wtedy przy każdym odświeżeniu strony/przejśćiu gdzieś indziej wykonywany jest jeden "select" w bazie danych oraz jeden "if". Jeżeli "if" okaże się prawdą, następuje "update" w bazie. Przy takim rozwiązaniu, choć mamy sporo selectów (aż jeden na odświeżenie strony

), to nie wykonujemy zbędnych update'ów dla osób, które aktualnie nie grają.
Dodatkowo można to wpisać do sesji lub ciasteczek, by zlikwidować tego selecta.