Your thoughts are fine but what about the details? How would it know to run?
You can create an EJB that implements TimedObject and then have something call it to setup the timer.
Or you could create a cronjob. This cronjob could be the application itself. Or a client that calls an EJB at the correct interval. Or the EJB could be a message driven bean and a cronjob or something else could send a message at the correct intervals.