One of the little known, but incredibly useful functions of WordPress is wp_cron. It allows you to schedule tasks for execution at a later time, the tasks can also be repeatable. It’s not perfect and does have one serious problem, in that it is only executed while users are actually navigating the site. But on a popular site this won’t make a difference, but it’s still worth noting.