如何在Rabbitmq中创建队列

时间:2018-01-02 06:16:51

标签: docker rabbitmq dockerfile

我正在创建一个新的图像,将base作为rabbitmq并尝试创建队列,交换一旦服务器启动就会反映在localhost url上。我能够在rabbitmq容器中手动创建队列。但我想通过dockerfile或entrypoint.sh来实现这一点。我想要一旦rabbitmq服务器启动就可以使用交换,队列。请建议任何方式来实现它。任何示例都会有所帮助。

2 个答案:

答案 0 :(得分:0)

Rabbitmq有Management HTTP API。您可以使用此api与rabbitmq进行交互。

您可以通过向http://localhost:15672/api/queues/${vhost}/${name}发送POST请求来创建交换。同样,您可以通过创建队列 对curl进行POST。

您可以在入口点脚本中使用private void WmNcCalcSize(ref Message m) { if (m.WParam != IntPtr.Zero) { Win32.NCCALCSIZE_PARAMS rcsize = (Win32.NCCALCSIZE_PARAMS)Marshal.PtrToStructure(m.LParam, typeof(Win32.NCCALCSIZE_PARAMS)); AdjustClientRect(ref rcsize.rcNewWindow); Marshal.StructureToPtr(rcsize, m.LParam, false); } else { Win32.RECT rcsize = (Win32.RECT)Marshal.PtrToStructure(m.LParam, typeof(Win32.RECT)); AdjustClientRect(ref rcsize); Marshal.StructureToPtr(rcsize, m.LParam, false); } m.Result = (IntPtr)1; } private void AdjustClientRect(ref Win32.RECT rcClient) { if (this.WindowState == FormWindowState.Maximized) { rcClient.top += this.CaptionHeight + Math.Abs(this.Top) - 1; rcClient.left = 0; rcClient.right = Screen.PrimaryScreen.Bounds.Right; rcClient.bottom -= 1; } else { rcClient.top += this.CaptionHeight; rcClient.left += 1; rcClient.right -= 1; rcClient.bottom -= 1; } } 来调用它们。

答案 1 :(得分:0)

您可以像这样使用HareDu 2:

var result = _container.Resolve<IBrokerObjectFactory>()
                .Object<Queue>()
                .Create(x =>
                {
                    x.Queue("fake_queue");
                    x.Configure(c =>
                    {
                        c.IsDurable();
                        c.AutoDeleteWhenNotInUse();
                        c.HasArguments(arg =>
                        {
                            arg.SetQueueExpiration(1000);
                            arg.SetPerQueuedMessageExpiration(2000);
                        });
                    });
                    x.Targeting(t =>
                    {
                        t.VirtualHost("HareDu");
                        t.Node("Node1");
                    });
                });