From dec910cff29456db90cb78858b8f37a36e98b2bf Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sun, 4 Oct 2020 09:12:57 +0200 Subject: [PATCH] simplify queue organization --- zc-mqtt | 14 ++++++-------- zc-send | 4 ++-- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/zc-mqtt b/zc-mqtt index 0b44a06..f7bd2b0 100755 --- a/zc-mqtt +++ b/zc-mqtt @@ -88,30 +88,28 @@ while (1) { mkdir "$queue" if ( ! -e "$queue" ); mkdir "$queue/$dir" if ( ! -e "$queue/$dir" ); - mkdir "$queue/$dir/up" if ( ! -e "$queue/$dir/up" ); + mkdir "$queue/$dir/.pending" if ( ! -e "$queue/$dir/.pending" ); my $function_code = unpack('C',substr($msg->message,2,1)); - write_file "$queue/$dir/up/$t.$function_code", $msg->message; - - mkdir "$queue/$dir/down" if ( ! -e "$queue/$dir/down" ); - mkdir "$queue/$dir/down/.done" if ( ! -e "$queue/$dir/down/.done" ); + write_file "$queue/$dir/$t.up.$function_code", $msg->message; # if ( $msg->topic =~ m{Inclinometer/ZCT330Ex_SWP_N_YK/869858031634109/up} ) { if ( substr($msg->message,2,1) eq "\x07" ) { # heartbeat $topic =~ s/up$/down/; - my @all_pending = sort glob "$queue/$dir/down/*"; + my @all_pending = sort glob "$queue/$dir/.pending/*"; if ( my $pending = shift @all_pending ) { my $raw = read_file $pending; + my $pending_function_code = unpack('C',substr($msg->message,2,1)); send_message($socket, message_type => MQTT_PUBLISH, retain => 0, #$retain, topic => $topic, message => $raw); - $pending =~ s{$queue/$dir/down/}{}; - rename "$queue/$dir/down/$pending", "$queue/$dir/down/.done/$pending"; + $pending =~ s{$queue/$dir/.pending/}{}; + rename "$queue/$dir/.pending/$pending", "$queue/$dir/$pending.down.$function_code"; } } diff --git a/zc-send b/zc-send index feeddd2..ff6a882 100755 --- a/zc-send +++ b/zc-send @@ -33,8 +33,8 @@ my $raw = write_parameter_frame( "\x21" => "\x04" . pack('l',60) ); # temporary store to done my $t = time(); -write_file "$queue/$imei/down/.done/$t", $raw; +write_file "$queue/$imei/.todo.$t", $raw; # atomic rename to ensure that file is complete -rename "$queue/$imei/down/.done/$t", "$queue/$imei/down/$t"; +rename "$queue/$imei/.todo.$t", "$queue/$imei/.pending/$t"; -- 2.20.1