This 'move' based is thing is what i was thinking as well. That is probably the simplest approach. For the developers what they have to do is write their files in a separately directory (separate from the directory being monitored) and move the file to the directory being monitored once done. 

I was not generating files using this method myself. I was using FileSystem.copyFromLocalFile(). I will change that to  use move and see whether it works with no slack time.