Собственно к примеру нужно восстанавливать 1 энергию в минуту, каждому пользователю, не через крон же делать?
А что вас смущает в этом подходе?
Пусть скрипт переберет пользователей, которым надо пересчитать энергию, и сделает это... запускайте раз в минуту да и все. Это намного лучше, чем висеть интерпретатору круглые сутки в памяти и периодически делать это.
Наверняка можно даже реализовать одним запросом это все.
Предположим что максимум энергии это 100:
UPDATE users SET energy = energy +1 where energy < 100;