1. 程式人生 > >[My Own Wheels]Python每天特定時間執行任務

[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