I think your case is fairly common, but I'd suggest you try Brandon's solution. 
In one situation, for example, I have to expire a record 15 minutes after it was last edited. So every time the record gets changed I schedule an 'expire' job. At any time, I might have a handful of these jobs in the queue. 
Then, my expire method looks like:
def expire
  do_the_expiration if updated_at < 15.minutes.ago
end
That way, if there are old jobs around, they simply become noops, and I can safely ignore them. 
I use this pattern quite a bit, and recommend it. Maybe you can check when you last fetched, and only do a new one if enough time has passed.
Cheers, 
-Daniel