前景提要
HDC调试需求开发(15万预算),能者速来!>>>
刚接触erlang不久。
CentOS上的Rabbitmq,修改Tracing插件的rabbit_tracing_consumer.erl文件。
在函数delivery_to_log_record中的开头 {Type, Q, RQs} = case Key of之前加入一段修改,想根据对特定消息的分析结果向Rabbitmq中再抛入一个消息,编译没问题,但是一直运行出错,日志提示case clause错误,似乎导致后续的原来的代码有问题。
加入这一句会导致问题:
ok = amqp_channel:cast(State#state.ch,#'basic.publish'{exchange = ?TRACE_BACK_EXCHANGE_NAME, routing_key = list_to_binary(FromID)},#amqp_msg{payload = mochijson:encode({struct,NewJsonData})});
这一句是在一个case判断里的,所以语句最后是一个分号。 State是这个函数的入口参数
经过试验,单独把语句中的下面两部分拿出来单独使用,都没有问题
#'basic.publish'{exchange = ?TRACE_BACK_EXCHANGE_NAME, routing_key = list_to_binary(FromID)}
和
#amqp_msg{payload = mochijson:encode({struct,NewJsonData})}
似乎只要调用 amqp_channel:cast就会出错
请高手看看,怎么处理?
谢谢