[英]how to use a timer in Lua
我使用tshark捕獲數據,並保存數據包頭中的某些數據以進行處理,以檢測網絡中的某些事件。 我將數據保存在lua程序的表中(該表使用tshark在cmd中使用命令(-Xlua_script :)運行),現在我想在捕獲運行時單獨處理每分鍾的數據。 這是一個在線處理。 首先:任何人都知道這是否可以實現?其次,我需要一個計時器,我不知道該怎么做,我想要一種方法,可以將表中的數據用於處理它們,重置表以獲取下一分鍾的新數據而不會丟失任何數據。 有任何建議或想法嗎?
lua中沒有像其他語言那樣使用“計時器”的概念,您可以在其中創建一個並設置事件處理程序,並在計時器關閉時通知主程序...但是您可以定期檢查os。 clock()來確定自從您做了一些處理以來已經有多長時間了,如果一分鍾過去了,請繼續處理數據。
這樣的事情可能是您需要的:
lastTimeProcessed = os.clock()
function IsTimeToProcess(currentTime)
span = currentTime - lastTimeProcessed
if span >= 60 then
lastTimeProcessed = currentTime
return true
end
return false
end
while true do
if IsTimeToProcess(os.clock()) then
-- process some data here
end
-- otherwise do another round of whatever you're doing
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.