Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^4: processing file while file is in use

by grashoper (Monk)
on Apr 22, 2009 at 17:14 UTC ( [id://759347]=note: print w/replies, xml ) Need Help??


in reply to Re^3: processing file while file is in use
in thread processing file while file is in use

I am looking to perform some processing based on the data being written to the file, so I was thinking I would periodically open a logfile write to it, test for a condition close it, etc. does this make any sense? my goal is to be informed should errors occur with running loadrunner tests, so that if a change takes place on the server and my script starts failing I am notified, as well as having notifications sent should requests take longer than expected on the server.
  • Comment on Re^4: processing file while file is in use

Replies are listed 'Best First'.
Re^5: processing file while file is in use
by gwadej (Chaplain) on Apr 22, 2009 at 18:38 UTC

    Maybe I'm completely confused, but what I had understood that you wanted was something like the following:

    1. loadrunner is writing to an output file as it runs (say output.log)
    2. your program reads from output.log looking for interesting results.

    Normally the difficult part of this is getting the second program to continue reading when new data is written to the file. That is what File::Tail helps with.

    Now it sounds like you have a few other issues to consider.

    1. some form of logging requirement
    2. notify you on interesting events
    3. requirement to check if requests take too long

    I can't tell if you need the logging in its own right, or if you just need it for the notification. If you just need the notifications, there are many methods that can be used (email, Log::Log4perl, flashing lights, etc.). If you need the log itself, then either writing to a file directly or one of the logging modules on CPAN would work.

    Checking to see if a process is taking too long is could be handled with a timeout on the read. File::Tail can handle this using the maxinterval parameter. If File::Tail doesn't suit your needs, you could wrap the read in an eval and use the alarm function to make certain you don't wait too long. (If you time out, you can notify and loop back to wait some more.)

    At this point, it would probably be worthwhile to try to write down (possibly just for yourself) the process you are trying to implement. From this end, it looks a bit fuzzy. Possibly writing out the events you are looking for and how you want to handle them would help. Then, some of the techniques I've mentioned may make more sense.

    G. Wade

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://759347]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (4)
As of 2024-04-16 19:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found