We do the following:
Put the script into cron to generate the output.
Set up dirscan to watch for that output file being less than 15 minutes old.
Set up an AO profile that is triggered by that dirscan error when the file becomes older than 15 minutes.
That AO profile runs a LUA script that, at the core, contains the following
pds.putString ( mypds, "directory", directory)
pds.putString ( mypds, "file", filename )
pds.putInt ( mypds, "buffer_size", 102400000 )
output1,return_status1 = nimbus.request ( address .. "/controller", "text_file_get", mypds )
There are a bunch of other possibilities.
-Garin