anchor.diff:  
   
   exec_publish(Ts,Map)->
  -        Qname=maps:get(<<"qname">>,Map),
  -        Msg=maps:get(<<"msg">>,Map),
  -        Delay=maps:get(<<"delay">>,Map),
  -        Expires=maps:get(<<"expires">>,Map),
  +        Qname=proplists:get_value(<<"qname">>,Map),
  +        Msg=proplists:get_value(<<"msg">>,Map),
  +        Delay=proplists:get_value(<<"delay">>,Map),
  +        Expires=proplists:get_value(<<"expires">>,Map),
           {MemItem,Uid}=gen_msg(Msg,Expires),
           push_to_disk(Qname,Uid,0,Delay,Expires,Msg),
           timer:apply_after(Ts*1000,qin,real_publish,[Qname,MemItem]),
  
positive.code: 
  
  exec_publish(0,Map)->
          Qname=maps:get(<<"qname">>,Map),
          Msg=maps:get(<<"msg">>,Map),
          Delay=maps:get(<<"delay">>,Map),
          Expires=maps:get(<<"expires">>,Map),
          {MemItem,Uid}=gen_msg(Msg,Expires),
          push_to_disk(Qname,Uid,0,Delay,Expires,Msg),
          real_publish(Qname,MemItem);
  
negative.code:     io:format(" starting...\n").
  
  select_task(Data) ->
      Mapx=jiffy:decode(Data),
      {Map} = Mapx,
      Cmd=proplists:get_value(<<"cmd">>,Map,[]),
      exec_task(Cmd,Map).
      
  exec_task(<<"SUB">>,Map) ->
      Qname=proplists:get_value(<<"qname">>,Map),
      pg2:create(Qname),
      pg2:join(Qname,self()),
      R = jiffy:encode({[{<<"cmd">>, <<"oksub">>},{<<"qname">>,Qname}]}),    
  