我在使用「列表」部件來顯示一個字符串和一個值(在這種情況下,用戶的名稱和批處理系統上運行的作業數量)。Dashing - 列表部件
我想這顯示按價值(工作數量)降序排列。它目前從包含字符串(用戶名)和值(作業數量)的csv文件中讀取這些文件,並按降序排列。
CSV.foreach('/path/to/file.csv') do |row|
user = row[0]
numberOfJobs = row[1]
SGE_list[user] = { label: user, value: numberOfJobs }
end
一旦開始衝刺,並且第一次讀取文件,這是正確的。但是,當它重新讀取文件(它不斷更新)時,它會保持原始順序(不管在csv文件中的順序如何)。
有什麼建議嗎?
全部工作文件:
require 'csv'
JOB_list = Hash.new({ value: 0 })
SCHEDULER.every '5m' do
groups = ["user1", "user2", "user3", "user4", "user5", "user6", "user7", "user8"]
# Read in to get order
CSV.foreach('/opt/dashing/sweet_dashboard_project/jobs/qusage.csv') do |row|
user = row[0]
numberOfJobs = row[1]
JOB_list[user] = { label: user, value: numberOfJobs }
end
# blank all values
for g in groups
JOB_list[g] = { label: g, value: 0 }
end
CSV.foreach('/opt/dashing/sweet_dashboard_project/jobs/qusage.csv') do |row|
user = row[0]
numberOfJobs = row[1]
JOB_list[user] = { label: user, value: numberOfJobs }
end
send_event('batch_jobs', { items: JOB_list.values })
end
CSV文件可以改變。它可以是: user7,1000 用戶2 987 user8,800 user6,400 USER5,200 USER4,122 用戶1,89 用戶3,2
,或者,如果用戶沒有正在運行的工作,它們沒有列出這樣:
user6,340 USER5,123 USER4,101
它總是由第二列排序。
更好地提供完整的小部件,以供參考樣本csv文件 –