Правильный ответ зависит от ваших точных потребностей.
Все ли всегда получают ресурсы с одинаковой скоростью? Если это так, простое решение состоит в том, чтобы отследить, как долго существует их пользователь, рассчитать количество ресурсов на основе скорости, которую они получают, и вычесть количество ресурсов, которые они потратили в общей сложности. Это будет немного проблемой, если скорость может когда-либо измениться, поэтому, если вы используете это решение, вы в значительной степени застряли на выбранной вами скорости, если вы не переписываете обработку полностью (например, на приведенную ниже) .
Если скорость, с которой люди могут получать ресурсы, меняется, вам придется периодически обновлять данные. Задача cronjob / запланированная будет работать хорошо, чтобы убедиться, что все обновлены, но в некоторых ситуациях может быть лучше просто измерить, сколько времени прошло с тех пор, как вы обновили ресурсы каждого пользователя, а затем обновлять их при каждой загрузке страницы, которую они делают входя в систему, умножая время, которое они провели, на скорость, с которой они получают ресурсы - таким образом, вы избегаете обновления, пока вам действительно не понадобится новое значение.