<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Thanks for the info, Simon...comments below...(also question about gen_server2)<div><br></div><div><br><div><div>On Sep 2, 2010, at 9:34 AM, Simon MacMullen wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Hi Jon. I don't know if you've found answers to these questions yet, but I'll take a stab at answering anyway.<br><br>On 24/08/10 17:11, Jon Brisbin wrote:<br><blockquote type="cite">I'm looking at some of the existing plugins and I just want to make sure<br></blockquote><blockquote type="cite">I understand how the plugins are supervised in the broker.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">It looks like it starts the application defined in the plugin's .app<br></blockquote><blockquote type="cite">file, whose start() function should call my plugin's supervisor's<br></blockquote><blockquote type="cite">start_link() function, correct?<br></blockquote><br>Yes. It can start more than one supervisor of course, but it needs to return the pid of the top-level one.<br></div></blockquote><div><br></div><div>Okay, that makes sense. Just put supervisors in your top-level super's worker configs and they can, in turn, start the gen_servers.</div><div><br></div><br><blockquote type="cite"><div><blockquote type="cite">I'll need to listen on multiple exchanges, so I'm assuming I'll need a<br></blockquote><blockquote type="cite">gen_server, which starts separate consumers, for each configuration<br></blockquote><blockquote type="cite">element (akin to what rabbit_shovel is doing by creating a child<br></blockquote><blockquote type="cite">configuration in the supervisor for each element in the configuration<br></blockquote><blockquote type="cite">file). How far can I go before I need to worry about resource usage of<br></blockquote><blockquote type="cite">the "process per consumer" approach?<br></blockquote><br>Pretty far. Erlang processes are in general much cheaper than threads are in other languages precisely so you can do things like that.<br><br></div></blockquote><div><br></div></div><div><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Palatino; font-size: 14px; 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; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Times; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; 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; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; 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; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><font class="Apple-style-span" face="Palatino" size="4"><span class="Apple-style-span" style="font-size: 14px; "><span class="Apple-style-span" style="font-size: medium;">That's good. It sounds like I've got a ways to go before worrying about that.</span></span></font></div><div><font class="Apple-style-span" face="Palatino" size="4"><span class="Apple-style-span" style="font-size: 14px; "><span class="Apple-style-span" style="font-size: medium;"><br></span></span></font></div><div><font class="Apple-style-span" face="Palatino" size="4"><span class="Apple-style-span" style="font-size: 14px; "><span class="Apple-style-span" style="font-size: medium;">What are the advantages to using the gen_server2 module rather than stock erlang gen_server? Would it be better in general for the webhooks plugin to use gen_server2?</span></span></font></div><div><font class="Apple-style-span" face="Palatino" size="4"><span class="Apple-style-span" style="font-size: 14px; "><span class="Apple-style-span" style="font-size: medium;"><br class="Apple-interchange-newline"></span>Thanks!</span></font></div><div><font class="Apple-style-span" face="Palatino" size="4"><span class="Apple-style-span" style="font-size: 14px; "><br></span></font></div><div><font class="Apple-style-span" face="Palatino" size="4"><span class="Apple-style-span" style="font-size: 14px; ">J. Brisbin</span></font></div><div><font class="Apple-style-span" face="Palatino" size="4"><span class="Apple-style-span" style="font-size: 14px; "><a href="http://jbrisbin.com/">http://jbrisbin.com/</a></span></font></div><div><font class="Apple-style-span" face="Palatino" size="4"><span class="Apple-style-span" style="font-size: 14px; "><br></span></font></div><div><font class="Apple-style-span" face="Palatino" size="4"><span class="Apple-style-span" style="font-size: 14px; "><br></span></font></div></div><font class="Apple-style-span" face="Palatino" size="4"><span class="Apple-style-span" style="font-size: 14px; "><br></span></font></div></span><br class="Apple-interchange-newline"></span><br class="Apple-interchange-newline"></span>
</div>
<br></div></body></html>