Calculate "status" dependent on a date field

Hi!

I got a date-field called "Valid until".

If the date is overdue, the field "status" must be changed to "inactive".

How to achieve that?

I am thinking about:

1) logic hook on before_save that checks the "Valid unitl" with "current date". This is for adhoc changes on the record.

2) Nightly run/Scheduled Job/Cron Job on "status==active" which also executes the logic hook from 1). This is for nightly comparison of current date.

Any ideas, tricks? Thanks a lot.