Цикличное выполнение функции

Здравствуйте! Создал функции генерации, получении, обновлении и тд дисконтных карт. Изначально имеется массив с 12 кодированными данными. В кодированных данных есть id и время жизни который задается с прибавлением 1ч к текущему. Хочу сделать выполнение функции обновлении кода дисконтной карты когда пользователь в сессии сидит. Если не сидит цикл выполнении функции останавливается когда авторизуется начинает. Подскажите как реализовать такое? Или лучше будет сделать выполнение этой функции кроном?