<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>On Apr 25, 2011, at 9:47 AM, Konstantin Tjuterev wrote:</div><div><br class="Apple-interchange-newline"><blockquote type="cite">So, until this feature is implemented, which strategy do you think would be best as a workaround?<br></blockquote><div><br></div><div>This is completely off-the-cuff, but by using the new Riak RabbitMQ postcommit hook, you could store your messages in Riak first with the "ignore" flag set to true. At 8:00 a cron job could simply roll through all the entries in that bucket and turn off the ignore flag, which would cause all those messages to be sent out at once.</div><div><br></div><div>jb</div><div><br></div><br><blockquote type="cite"><br>Thanks!<br><br>Konstantin.<br><br><div class="gmail_quote">On Mon, Apr 25, 2011 at 4:58 PM, Jon Brisbin <span dir="ltr">&lt;<a href="mailto:jon@jbrisbin.com">jon@jbrisbin.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">This sounds to me like the function of a queue type that buffers messages until a specific threshold is reached (either of number or of time window). Ideally, this should be implemented in the broker.<br>

<br>
That wouldn't be an immediate fix, unfortunately, as implementing a new queue type is non-trivial.<br>
<br>
jb<br>
<div><div></div><div class="h5"><br>
<br>
On Apr 25, 2011, at 6:02 AM, Konstantin Tjuterev wrote:<br>
<br>
&gt; Hi, I'm trying to implement the following scenario with RabbitMQ:<br>
&gt;<br>
&gt; - a site which generates various emails according to user actions (like registration, ordering etc.), or according to schedule (daily announcements); emails are published into an RabbitMQ exchange<br>
&gt; - a set of workers which read the queue and send out emails, do some logging<br>
&gt; - some emails need to be sent immediately<br>
&gt; - some should be sent precisely at specific time (or as close as possible), like daily announcement should go out exactly at 8:00AM<br>
&gt; - generating daily announcements involves complex logic and takes some time (more than actual delivery), so there is a job which prepares it before time X and publishes into an exchange<br>
&gt;<br>
&gt; So, my question is if there is a native way to schedule messages to be delivered to workers exactly at specific time? If there is not, which strategy do you think would be the best:<br>
&gt; - declaring a separate queue for such scheduled/postponed messages and starting workers at required time (by cron)<br>
&gt; - having a check-what-time-is-it/sleep cycle in the workers (which are always running)<br>
&gt; - having workers consume the message, check time and do NOT send acknowledgement if it's not yet the time to process it (this is the only strategy I see, NOT requiring separate workers, but it will use a lot of resources for retrying message delivery)<br>

&gt; - anything else?<br>
&gt;<br>
&gt; Thanks in advance,<br>
&gt;<br>
&gt; Konstantin.<br>
</div></div>&gt; _______________________________________________<br>
&gt; rabbitmq-discuss mailing list<br>
&gt; <a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
&gt; <a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
<br>
<br>
Thanks!<br>
<br>
Jon Brisbin<br>
<br>
<a href="http://jbrisbin.com/" target="_blank">http://jbrisbin.com</a><br>
Twitter: @j_brisbin<br>
<br>
<br>
</blockquote></div><br>
</blockquote></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><br>Thanks!<br><br>Jon Brisbin<br><br><a href="http://jbrisbin.com">http://jbrisbin.com</a><br>Twitter: @j_brisbin<br><br></span>
</div>
<br></body></html>