Sorry, if that was such a bad reply.
Truly, the problem in statement is "check for every 'n' units of time". If it has to be checked for 'n' units of time then for the each slice of time the file has to be definitely opened, parsed through, validated or checked against and then closed again.
This has to be definitely done by a process. Using crond for that is ruled out ( as said by you ). So, another process that does a minimal of crond ( a real minimal ) is needed.
Whats wrong with the suggestion I had posted ? For every 'n' units of time, the process is going to wake up and going to do its job; rest of the time it would be in sleep mode so its not blocking the run queue of the runnables nor using up a considerable time slice in doing not-so useful while (1) or something like that.
Any, event tracker or event notifier has to work with the resource ( open, read, close ) and then inform the process blocking on the event notifiers/trackers.
Or, did you mean something else ?
Experts here might post different and better solutions