rabbitmq怎么停止_如何停止rabbitmq worker mid脚本?

阻止消费者与生产商接触的秘诀通常是发出有害信息。在

有些通过多个队列来完成,有些通过一个被理解为停止消费的专用消息来完成(后者只适用于一个工人)。在

基本上,当python脚本看到有害消息时,它会立即关闭。您可能希望在单独的队列中使用此消息的原因是,如果您有多个worker,则可能需要广播消息,因此每个worker都需要一个独占队列。在

至于启动脚本,最好是让工作人员继续运行,让他们等待重新启动消息。在

否则,您可以创建一个observer worker或controller来接收消息和控制进程,比如重新启动python脚本,但这相当复杂。在

我相信,如果你正在寻找一些预先加工好的东西,芹菜会起到很大的作用。在

编辑-毒药信息在AMQP中可能已经有了其他含义。我的意思是你自己的毒药信息。在

既然你想在它运行的时候杀死它,你就得用广播的方式去做。在

对于每个使用者,每个python脚本实际上都有两个使用者。在

一个用于接收实际数据,另一个用于接收启动和停止数据消费程序的命令。在

如果您想开始,您可以有一个广播消息(JSON,但是您可以使用您喜欢的任何格式,或者也可以使用AMQP头属性)):{

"command" : "start"

}

当您想停止时,您的制作人可能会发送一条消息,如:

^{pr2}$

消费者回调将查看message.command == 'stop'。在

一旦您看到在消费者身上调用channel.basicCancel(consumerTag)的消息,该消息实际上正在接收数据,并实际杀死当前正在运行的任何内容。杀死当前正在运行的任何东西都高度依赖于您的设置,所以我不能真正深入到这一点,因为它可能是一个单独的进程,也可能是一个单独的线程或事件,如果使用某个事件引擎的话。杀死长时间运行的进程本身就很棘手。在

如果使用主题交换,或者可以使用fanout(又名广播)交换,则每个python脚本都应该为命令使用者提供一个独占队列。在

数据使用者将与所有其他脚本共享一个队列。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值