【 聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing @163.com】
? 沒有合適的定時器庫,自己編寫python定時器code。
#!/usr/bin/pythonimport os
import sys
import time
import threading
import signalg_timer_lock = threading.Lock()
g_ticks= []
g_exit = 0def sig_process(sig, frame):global g_exitprint 'get signal'g_exit = 1def insert_ticks(delta):global g_tickscurrent = int(time.time()) + deltatick = []process_flag = 0if 0 == len(g_ticks):g_ticks.append([current, delta])else:for i in range(len(g_ticks)):if current < g_ticks[i][0] and not process_flag:process_flag = 1tick.append([current, delta])tick.append(g_ticks[i])if not process_flag:tick.append([current, delta])g_ticks = tickdef add_timer(delta):g_timer_lock.acquire()insert_ticks(delta)g_timer_lock.release()def timer_process():while not g_exit:g_timer_lock.acquire()current = int(time.time())process_num = 0while not process_num:for i in range(len(g_ticks)):if g_ticks[i][0] < current:process_num = 1breakif process_num:process_num = 0print '%d %d ' %(g_ticks[i][0], g_ticks[i][1])print 'ready to send msg to module'del g_ticks[i]else:process_num = 1g_timer_lock.release()time.sleep(1)def main():signal.signal(signal.SIGINT, sig_process)td = threading.Thread(target=timer_process)td.start()while not g_exit:add_timer(1)add_timer(3)add_timer(2)time.sleep(6)td.join()if __name__ == '__main__':main()
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态