84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
如題,求教!
可以透過另開一條執行緒, 去專門做這件事情, py2程式碼如下, 如果是py3請自行調整下語法
# coding: utf8 import threading import time # 真正要执行的函数 def t1(): print ('ok') # 每隔10秒钟执行 def t2(): while 1: t1() time.sleep(10) if __name__ == '__main__': t = threading.Thread(target=t2) t.start() # 此处写你主线程要处理的事情..... t.join()
線程。定時器
如果直接開子程序的話,退出主程序時子程序會一直存在, 建議設定成守護程序
import sys import signal import threading import time from datetime import datetime def quit(signum, frame): sys.exit() def process_fun(): while True: print datetime.now() time.sleep(1) if __name__ == '__main__': try: signal.signal(signal.SIGINT, quit) signal.signal(signal.SIGTERM, quit) p = threading.Thread(target=process_fun) #注册成为主进程 p.setDaemon(True) p.start() #如果没有主进程, 就用循环代理 while True: pass except Exception as e: pass
可以考慮Advanced Python Scheduler(http://apscheduler.readthedoc...能夠進行極其複雜的定時設計,每個幾秒幾分鐘,或者是某天的具體一刻等等,可以阻塞進程,可以在後台,全部按照你的要求。
雷雷
APScheduler是一個Python定時任務框架,使用起來十分方便。提供了基於日期、固定時間間隔以及crontab類型的任務,並且可以持久化任務並以daemon方式運行應用程式。
下面是一個簡單的例子,每隔10秒列印一次hello world
from apscheduler.schedulers.blocking import BlockingScheduler def my_job(): print 'hello world' sched = BlockingScheduler() sched.add_job(my_job, 'interval', seconds=10) sched.start()
#-*- coding:utf8 -*- import multiprocessing import time def f(): print time.ctime(),'这是子进程,每10S执行一次' def work(): while 1: f() time.sleep(10) if __name__ == '__main__': p = multiprocessing.Process(target=work,) p.start() p.deamon = True while 1: print '这是主进程,每1秒执行一次' time.sleep(1)
執行結果:
可以透過另開一條執行緒, 去專門做這件事情, py2程式碼如下, 如果是py3請自行調整下語法
雷雷線程。定時器
如果直接開子程序的話,退出主程序時子程序會一直存在, 建議設定成守護程序
可以考慮Advanced Python Scheduler(http://apscheduler.readthedoc...
能夠進行極其複雜的定時設計,每個幾秒幾分鐘,或者是某天的具體一刻等等,可以阻塞進程,可以在後台,全部按照你的要求。
雷雷
Python任務調度模組 – APScheduler(點擊查看)
APScheduler是一個Python定時任務框架,使用起來十分方便。提供了基於日期、固定時間間隔以及crontab類型的任務,並且可以持久化任務並以daemon方式運行應用程式。
下面是一個簡單的例子,每隔10秒列印一次hello world
執行結果: