Option 3 is the reason why cron was invented. Option 3 is much more work: Your process can be stopped, killed, it can hang etc. Every the machine reboots, you have to restart your process by hand. Use cron.
Not that I am an advocate for running process as my first post has indicated but restarting the app by hand is not neccessary if you add an entry to "/etc/rc.d/rc.local" (For RH, Fedora) and a similar file path for other distros. This entry will start the script automagically when the OS boots.