要するに、広告やローカルルールの更新が迅速に反映されて欲しいってことですよね?

だったら、
・更新チェックした時刻(A)と、チェックする対象ファイルの最終更新時刻(B)をセットで記録
・実行される度に現在時刻と(A)の差を調べ、300秒を超えていたら(B)の更新時刻をチェック
 (B)が更新されていたら、メモリ上の(B)ファイルのデータを更新し
 メモリ上の(B)の更新時刻のデータも新しいファイルにあわせる
・内部的に保持している(A)の時刻を更新
という流れが良いのではないかと思います。