 <p>You can still use the <code>interval()</code> method, just ignore its result!</p> <pre><code>final Producer producer = ...; int n = ...; Observable&lt;Object&gt; obs = Observable.interval(n,TimeUnit.SECONDS) .map(new Func1&lt;Integer,Object&gt;() { @Override public Object call(Integer i) { return producer.readData(); } )); </code></pre>