6 comments

[ 2.3 ms ] story [ 22.7 ms ] thread
While this is an interesting hack it seems like a very strange approach to the problem at hand.

If you don't care how often your function runs then why not just rely on the system clock and maintain a "lastrun"-variable?

because that would violate his 'stateless' requirement
True, I should've had my coffee first.
Also, how does he guarantee his function to be called at least once a day? Perhaps he needs a quantum machine to run his code or he should use a "predictable-random-generator" (http://goo.gl/jsYC) which "would violate his 'stateless' requirement".
Of course, you could also randomly generate a time, then sleep for that long. This gives you significantly more control (you can easily specify "wait at least an hour" or "wait at most 48 hours") and is less resource-intensive. (Of course, "wait at least an hour" is not a good idea if your program crashes all the time.)

Still, nice.

??? Why not just set it to run at say 1am? Stateless, simple. Or did I miss something?

  def deleting_thread():  
    while True:  
      # 10 minutes
      time.sleep(10 * 60) 
      # pseudocode
      if 01:00 <= time() and time() < 01:10:
          deleteFromSolrAndOptimize()
And no I'm not creating an account to tell this guy so on his blog.