title: Delayed queue / message processing in Storm
body: <p>In my <a href="http://storm-project.net/" rel="nofollow noreferrer">Storm</a> topology, while processing a stream, I want to delay the processing of some messages until some future points in time. What are some reasonable options for doing this?</p>
  
  <p>So far, I have thought about the following:</p>
  
  <ul>
  <li>Using Java's <code>Thread.sleep</code>. (However, based on some discussions, this is not a recommended way to efficiently utilize Storm's resources.)</li>
  <li>Use a delayed queue...
  
  <ul>
  <li>In particular, try <a href="http://doc.java.sun.com/DocWeb/api/all/java.util.concurrent.DelayQueue" rel="nofollow noreferrer">java.util.concurrent.DelayQueue</a>.</li>
  <li>Are there other implementations worth trying?</li>
  </ul></li>
  <li>Does Storm have some API for delaying a message that I have overlooked?</li>
  <li>Does ZeroMQ provide a delayed messaging API that Storm (if modified) could take advantage of?</li>
  </ul>