On Wed, Sep 30, 2020 at 10:01:20AM +0800, Xu Xijian wrote:
On Wed, Sep 30, 2020 at 09:42:44AM +0800, Tong Qunfeng wrote:
Give a snapshot information about taskqueue (data at redis sorted set queue "queues/id2content"). It will generate a file named taskqueue_snap_yyyymmdd.md.
snapshot content examples: |id---|add_time----------|current queue name| 14703, 2020-07-22 14:33, sched/vm-hi1620-2p8g-xxx/in_process 14831, 2020-07-22 17:51, sched/vm-hi1620-2p8g-xxx/in_process crystal.89630, 2020-09-23 11:19, sched/vm-hi1620-2p8g/in_process crystal.89667, 2020-09-23 11:20, sched/vm-hi1620-2p8g/in_process
Signed-off-by: Tong Qunfeng taxcom@tom.com
.../helper/redis_op_gc/taskqueue_snap.rb | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 user-client/helper/redis_op_gc/taskqueue_snap.rb
diff --git a/user-client/helper/redis_op_gc/taskqueue_snap.rb b/user-client/helper/redis_op_gc/taskqueue_snap.rb new file mode 100755 index 0000000..f0a7034 --- /dev/null +++ b/user-client/helper/redis_op_gc/taskqueue_snap.rb @@ -0,0 +1,56 @@ +#!/usr/bin/env ruby
+# SPDX-License-Identifier: MulanPSL-2.0+ +# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved. +# frozen_string_literal: true
+require 'json' +require_relative './basic_env'
+if !ARGV.empty?
- puts 'Usage:'
- puts "input: #{__FILE__}"
- puts 'output: taskqueue_snap_yyyymmdd.md'
- puts ' # id, first add time, current queue'
- puts ' # 14703, 2020-07-22 14:33, sched/vm-hi1620-2p8g-xxx/in_process'
- puts ' # 14831, 2020-07-22 17:51, sched/vm-hi1620-2p8g-xxx/in_process'
- puts ' # crystal.89630, 2020-09-23 11:19, sched/vm-hi1620-2p8g/in_process'
- puts ' # crystal.89667, 2020-09-23 11:20, sched/vm-hi1620-2p8g/in_process'
- exit
+end
How about change puts format like follows for better viewer: puts ' # id, first add time, current queue' puts ' # 14703, 2020-07-22 14:33, sched/vm-hi1620-2p8g-xxx/in_process' puts ' # crystal.89630, 2020-09-23 11:19, sched/vm-hi1620-2p8g/in_process'
this looks good.
this output can be treat as an "cell data" when split with ", " but split with ",\s{1+}" maybe a bit of difficulty. so ...
Thanks, Xijian
+# redis hash key "queues/id2content" is used by taskqueue +cmd = "#{CMD_BASE} queues/id2content , hgetall" +result = `#{cmd}`.chomp +results = result.split("\n")
+task_info = []
+# format time to "2020-09-29 14:23" +i = 0 +task_num = results.size / 2 +while i < task_num
- task_id = results[i]
- task_content = JSON.parse(results[i + 1])
- time = task_content['add_time']
- task_content['add_time'] = Time.at(time.to_f).strftime('%Y-%m-%d %H:%M') unless time.nil?
- time = task_content['move_time']
- task_content['move_time'] = Time.at(time.to_f).strftime('%Y-%m-%d %H:%M') unless time.nil?
- task_info << { 'id' => task_id, 'value' => task_content }
- i += 2
- set_progress(i, task_num)
+end
+# sort and put short information to file. +task_info.sort! { |a, b| a['value']['add_time'] <=> b['value']['add_time'] } +today = Time.now.strftime('%Y%m%d') +File.open("taskqueue_snap_#{today}.md", 'w') do |f|
- task_info.each do |task|
- f.write(task['id'] + ', ' + task['value']['add_time'] \
+ ', ' + task['value']['queue'] + "\n")
- end
+end
2.23.0