title: How to efficiently do many tasks a "little later" in Python?
body: <p>I have a process, that needs to perform a bunch of actions "later" (after 10-60 seconds usually). The problem is that those "later" actions can be a lot (1000s), so using a <code>Thread</code> per task is not viable. I know for the existence of tools like <a href="http://www.gevent.org/" rel="nofollow">gevent</a> and <a href="http://eventlet.net/" rel="nofollow">eventlet</a>, but one of the problem is that the process uses <a href="http://www.zeromq.org/bindings%3apython" rel="nofollow">zeromq</a> for communication so I would need some integration (eventlet already has it).</p>
  
  <p>What I'm wondering is <em>What are my options?</em> So, suggestions are welcome, in the lines of libraries (if you've used any of the mentioned please share your experiences), techniques (<a href="http://www.python.org/dev/peps/pep-0342/" rel="nofollow">Python's "coroutine" support</a>, use one thread that sleeps for a while and checks a queue), how to make use of zeromq's poll or eventloop to do the job, or something else.</p>