Best method for maintaining a session ID across multiple threadsby markdibley (Acolyte)
|on Jul 10, 2013 at 18:00 UTC||Need Help??|
markdibley has asked for the
wisdom of the Perl Monks concerning the following question:
I need to maintain a sessionID that I receive from SalesForce when I login. The sessionID lasts for 15 minutes and then has to be renewed with a new login. However, I have multiple threads who all need to update SalesForce and if each of them login the login will cancel any current active sessionID.
I think this means that the best way to manage this is to either have a single thread responsible for issuing the current valid sessionID and renewing the sessionID when it becomes stale OR get each thread to read the sessionID from a file, test the date of the file to see if the sessionID is most likely to be stale, remove the file and generate a new one.
The problem I have with solution 1 is that I don't know how to get 2 threads to talk to each other. With solution 2 I am unhappy with the possibility that a thread can pick up a valid sessionID and then 1 second later another thread thinks it is going to be stale and resets it resulting in retries or complicated pausing rules.
I am sure this has been handled before, but my searches aren't being very productive. Is there a standard way of dealing with this problem? Or even better yet, a perl module that can handle it?