I'd like to stay current on lead changes, so I've set up an app to call getMultipleLeads on an hourly basis, with a last modified threshold of an hour. Or half an hour. Or even ten minutes - it still usually takes over an hour to get any results. If I pull as little as the last three minutes' updates, this may complete in just five minutes. Obviously at that rate I won't be able to keep current.
We do have a fairly high volume of touches, as our data is synched with Salesforce on a near-real time basis. Still, a report in the web GUI for all leads updated in the last hour returned "about 377" records (though it took several minutes to return the first page of results). Surely 377 records shouldn't take minutes to process!
What can I do to keep current on lead changes? Is there a way to speed getMultipleLeads, or is there a better approach I should be using?
To be clear, the span of time I'm measuring is literally the length of time for the getMultipleLeads method to return. I'm using very verbose logging to pin this down.