[My Own Wheels]Python每天特定時間執行任務
# -*- coding:utf-8 -*-
"""
--------------------------------
@Author: Dyson
@Contact: [email protected]
@file: timer.py
@time: 2017/7/20 11:01
--------------------------------
"""
import time
import os
import sched
import sys
import datetime
# 初始化sched模組的scheduler類
# 第一個引數是一個可以返回時間戳的函式,第二個引數可以在定時未到達之前阻塞。
schedule = sched.scheduler(time.time, time.sleep)
sys.path.append(sys.prefix + "\\Lib\\MyWheels")
reload(sys)
sys.setdefaultencoding('utf8')
start_time = 0
end_time = 0
class mytimer(object):
# 被週期性排程觸發的函式
def execute_command(self, cmd, inc):
start_time = datetime.datetime.now()
os.system(cmd)
time.sleep(3 )
end_time = datetime.datetime.now()
delay = round((end_time-start_time).total_seconds())
print
print u'mytimer => 開始時間:%s' % start_time
print u'mytimer => 耗時:%smin' %(delay/60)
schedule.enter(int(inc-delay), 0, self.execute_command, (cmd, inc))
print u'mytimer => 結束時間:%s' % end_time
def cmd_timer(self, cmd, time_str, inc=60):
# cmd:windows中命令列程式碼
# time_str:哪一個時間點開始第一次執行
# inc:兩次執行的間隔時間
# enter四個引數分別為:間隔時間、優先順序(用於同時間到達的兩個事件同時執行時定序)、被呼叫觸發的函式,
# 給該觸發函式的引數(tuple形式)
now = datetime.datetime.now()
schedule_time = datetime.datetime.strptime(time_str,'%H:%M').replace(year=now.year,month=now.month,day=now.day)
if schedule_time < now:
schedule_time = schedule_time + datetime.timedelta(days=1)
time_before_start = int(round((schedule_time-datetime.datetime.now()).total_seconds()))
print u'mytimer => 還有%s秒開始任務' %time_before_start
schedule.enter(time_before_start, 0, self.execute_command, (cmd, inc))
schedule.run()
if __name__ == '__main__':
mytimer = mytimer()
mytimer.cmd_timer("netstat -an", '15:07', 60)
相關推薦
[My Own Wheels]Python每天特定時間執行任務
# -*- coding:utf-8 -*- """ -------------------------------- @Author: Dyson @Contact: [email protected] @file:
Windows設定程式每天特定時間執行
我們可以使用“任務計劃”設定功能結合shutdown命令靈活設定任務計劃,讓Win7系統實現定時自動執行,並且可以定製日常任務,讓Win7按指定時間頻率自動執行。 1.點選開始按鈕,依次選擇開啟“所有程式—附件—系統工具”,找到“任務計劃程式”即可開啟Win7系統的任務計劃
一個不錯的小軟體和一個不錯的作者的主頁:以管理員許可權特定時間執行程式
RunAsDate v1.21 - Run a program with the specified date/time Copyright (c) 2007 - 2013 Nir Sofer <iframe frameborder="0" hspace="0
按每天特定時間作為分界來統計資料的sql語句[sqlserver]
欄位:時間dt , 數量 num 要求: 求每天以8:30分為界統計每天數量的和sql select CONVERT(char(10),dateadd(minute,-510,dt),12
python---統計特定時間釋出數量(列表、range、for、元組、字典)
python—統計特定時間釋出數量(列表、range、for、元組、字典) 題意:對列表中(‘2012-11-3,22’, 12)……..24個時間區段,即每個小時釋出的數量統計,例子中22為22點,12為釋出次數。有可能是不同日期的22點發布次數,就要對所有
啟動系統定時器,每隔1分鐘/指定時間執行任務 學習筆記
啟動系統定時器每隔1分鐘/指定時間執行 import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class DemoTimer { //啟
nohub、screen管理長時間執行任務。
長時間連線到遠端Linux伺服器進行一些耗時比較長的工作(比如傳輸大檔案,系統備份等)時,這些工作耗時過長且中途不可關閉shell視窗或者斷開連線,否則任務會被kill。 關掉視窗/斷開連線會使得正在執行的程式死掉,是由於signup結束通話訊號
Java定時器,每天6點執行任務
<!-- 要執行任務的任務類。 --> <bean id="timeTask" class="com.cc.Controller.web.TimeTask"></bean> <!-- 將需要執行的定時任務注入JOB中。 -->
Python自動運維繫列:每天凌晨定時執行特定任務
import datetime import time def doSth(): print('test') # 假裝做這件事情需要一分鐘 time.sleep(
ROS-debug1 : 執行roscore時報錯:Unable to contact my own server at...
一、問題描述 在終端執行roscore時,出現錯誤:Unable to contact my own server at...,如下圖: 二、解決方法 以上問題是由於ROS環境變數ROS_MASTER_URI設定錯誤導致的,重新設定該變數即可。 開啟~/.bashrc檔案,新增或修改環
使用裝飾器,檢視函式的執行時間。深度解析python中對時間函式的使用
# Python time clock() 函式以浮點數計算的秒數返回當前的CPU時間。用來衡量不同程式的耗時,比time.time()更有用。 # 這個需要注意,在不同的系統上含義不同。在UNIX系統上,它返回的是"程序時間",它是用秒錶示的浮點數(時間戳)。 # 而在WINDOWS中,第一次呼叫
python某段程式碼執行時間過長,如何跳過執行下一步?
在工作中遇到過 個問題 執行一條程式碼時間過長 而且還不報錯,卡死在那。還要繼續執行下面程式碼,如何操作。 下面是個簡單的例項 pip安裝 第三方eventlet這個包 import time import eventlet#匯入eventlet這個模組 eventlet.monke
如何編寫指定時間執行的Python小程式
我們在平時的工作中經常會遇到這樣的需求,需要再某個時間點執行一段程式邏輯。 那麼,在python中我們是怎麼做的呢? 下面看程式碼: waitDesignatedTimeToRun.py import time, datetime startTime = date
python定時程式(每隔一段時間執行指定函式)
import os import time def print_ts(message): print "[%s] %s"%(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), message) def run(
Python版計算程式執行時間
我以前在C語言中介紹過計算程式執行時間的方法,該計算方法容易理解,具體步驟如下: 1.在程式開始執行前獲取當前的時間,並且記錄該時間 2.執行某個程式,以便統計該程式的執行時間 3.在程式執行結束後獲
python 計算 crontab 下次執行時間
rontab ext all int () %d ftime def print python3.6 -m pip install croniter import croniter import datetime def run_get_next_time(sched)
Timer定時器每天的固定時間執行
在網上看了好多介紹定時任務的方法,但是在使用的時候,如果當前時間是9:00,定時任務執行時間是8:59 就會造成在9點執行的程式的時候直接執行定時器中的方法。 Tip:定時器超時還執行。如下程式碼解
python中檢視程式執行的時間
import datetime start = datetime.datetime.now() run_function(): # do something end = datetime.datetime.now() print (end-start) 方法2: import t
python+opencv計算程式碼執行時間:time庫和opencv自帶方法getTickCount
import cv2 import time ############################## 利用opencv的兩個函式進行時間耗費計算 # cv2.getTickCount()記錄當前
執行roscore出現Unable to contact my own server at [http://192.168.0.101:35099/].
解決方法: 終端輸入 gedit ~/.bashrc 在bashrc檔案中更改以下為 export ROS_HOSTNAME=終端電腦名稱(即@與:之間部分) export ROS_MASTE