定時後臺運行Python程序

2021-01-08 DigiHacker

大型程序中經常會需要定時運行某些任務,比如生成報表,發郵件等。複雜的方法會用到消息隊列,用API調用一個接口定時運行你的任務。簡單的用Cron或者Windows裡的計劃任務。而Python提供了一個更簡單的方法。

Cron需要的是給出一行指定時間範圍。Python只需要pip install schedule, 我們就可以像寫偽代碼一樣交待它運行就可以了。下面是一個例子

在main方法裡我們要定時運行home和news, 在import schedule, 每個方法調用下就可以了,注意方法名就可以,不要加括號

但我們總不能等三分鐘或者一小時看任務執行情況吧,這裡就需要用日誌記錄下,方便我們調試。我們就用Python自帶的logging就夠用了

用basicConfig方法做一些初始化的工作就好,比如log文件名和loglevel. 因為我們主要是記載方法的運行情況,所以用information(INFO) 級別就比較適合

schedule會自帶記錄到log裡,包括了方法名和運行時間,所以我們也不用特意去寫log方法

這樣我們就可以運行一次就好,因為是個死循環,除非我們ctrl+c去中斷任務,它會一直運行到天荒地老。但是這還是個前臺任務,我們可以用一些方法讓它作為windows service或者Linux daemon在後臺和開機直接運行。

相關焦點

  • Python開發:Win10創建定時任務執行Python腳本
    >   日常開發過程中,可能需要再特定時間段執行我們編寫的Python腳本,如果手動輸入執行執行,會產生頻繁的工作量,對於這種情況,在Win10環境下創建任務計劃程序
  • 如何用Python發送定時郵件?
    Python 發送定時郵件的小技巧 之前接了一個爬蟲的小項目,需要每天將數據發送到客戶的郵箱中,每天都登錄伺服器下載數據十分麻煩,因此就用 Python 配合 Windows 系統自帶的任務計劃,每天上午 10:00 定時將當天的數據發到客戶郵箱中。
  • 如何編寫和運行Python程序
    本篇介紹在Windows、Linux、Mac OS不同環境下如何編寫和運行Pyhton程序。通過本篇的學習,可以達成如下目標。第一種方式是進入Pyhton的安裝目錄,直接運行python.exe程序;第二種方式是進入Windows命令行窗口,在命令行窗口啟動python.exe。在Windows命令行窗口啟動Python交互式解釋器,首先需要將Python安裝目錄的路徑,添加到Path系統環境變量。否則,只能進入Python安裝目錄啟動交互式解釋器。
  • 手機後臺程序怎麼退出?後臺運行應用如何清理?
    安卓手機在打開運行應用的時候有一個硬傷,那就是運行內存RAM永遠不夠用隨著手機上安裝的應用越來越多,另一個暗藏的問題悄然在影響著手機的運行速度有大部分應用雖然沒有直接運行,可為什麼沒有運行能夠收到推送消息呢?
  • 漫畫:如何分析運行中的 Python 程序?
    要排查的是線上正在運行的 Python 程序2.「凌晨 3 點多的時候可能出現」,表示問題並不是每天都出現的線上服運行在真實環境,使用真實數據長時間運行,這種非必發性的錯誤通常難以在測試服或灰度服中發現,而且這種錯誤看日誌通常難以判斷出現這種問題的真正原因,可能其他地方的代碼出現了問題,但沒有被處理,導致異常狀態一直堆積,一段時間後才出現的問題。
  • Python程序的編輯及運行,Pycharm的下載安裝
    Python程序的運行方式:在我這有三種:1、通過命令行(command.exe)運行Python。2、通過Python自帶的IDLE(集成開發環境 integrated development environment)3、PyCharm 一個強大的IDE(集成開發環境 integrated development environment)第一種 命令行運行Python開始菜單- 運行-cmd 按確認後進入命令行
  • 搭上python號小火箭,程序運行越來越快!
    但Python運行的慢是歷來被詬病的,一些人黑Python的一點是Python的程序運行速度奇慢。這一方面和語言有關,另一方面可能就是你代碼的問題。其實,無論使用哪種程式語言,特定程序的運行速度很大程度上都取決於該程序的開發人員及其編寫快而優的程序的技巧和能力。語言方面的問題我們解決不了,所以只能在編程技巧上來提高程序的運行效率。
  • 無需後端,小程序全自動定時推送模板消息系統
    但是我遇到了一個難題:我想每天都定時爬取API的新數據,然後推送給小程序的用戶,怎麼做呢?解決解決方法很簡單,甚至幾分鐘內你就可以做到!我們只需要使用古人云小程序開發平臺的推送API+任務腳本功能,就可以實現一個全自動的每天定時爬取更新系統啦!
  • Python—程序語言入門
    3、學會與Python交互的方法,print指令;4、新建程序文本文檔、運行程序的方法、保存時需要注意什麼;5、學會怎樣去查詢程序的錯誤;  教學重點     讓學生對編程提起濃厚的興趣;     Print指令的運用     識別和修正程序的錯誤   教學難點      識別和修正程序的錯誤
  • python定時獲取天氣數據並自動發送到郵箱
    自動發送郵件,python幾行代碼來搞定!我們說到如何用python來實現自動發送郵件。這篇文章我們就來談談如何獲取天氣數據,並定時將天氣數據發送到指定的郵箱中?另一種是通過python爬取相關天氣預報網頁的內容,從裡面提取相關的信息。由於之前沒有給大家介紹過相關爬蟲的知識,所以這裡採用第一種方法。以後再陸續介紹爬蟲怎麼去獲取天氣預報信息。
  • Python學習第157課——Linux切換用戶、關機、查看正在運行的程序
    【每天幾分鐘,從零入門python編程的世界!】我們接著介紹Linux中的命令。現在假設有這樣的一個情況:假如說你是一個Linux系統專家,你有一個朋友,他的Linux系統出了問題,邀請你幫他解決一下。
  • 教你寫一個定時關機程序
    我的這個控制臺程序有8個小功能,分別是:1、定時n秒後自動關機。,如:有些不需要依賴於cmd窗口的命令也可以直接在運行窗口中輸入,如在運行窗口中輸入 calc打開計算器:其中,可通過組合鍵【win+r】調出運行窗口。
  • 讓 Python 代碼運行更快的最佳方式!
    下面討論了一些例外,但是PyPy的目標是運行現有的,並且未經修改的Python代碼並為其提供自動化的速度提升。PyPy目前通過項目的不同版本支持Python 2和Python 3。換句話說,你需要下載不同版本的PyPy,具體取決於你運行的Python版本。 PyPy的Python 2分支已經存在了很長時間,但到目前為止,python 3版本的速度已經提高了很多。
  • 代碼詳解:如何用Python運行高性能的數學範式?
    全文共1140字,預計學習時長3分鐘比較python中不同運行範式的表現情況對於以性能為核心的應用程式和數據處理通道來講,需要運行最佳範例並選擇正確的庫集。那麼,在開發和學習中有哪些技巧呢?首先需要明確的是:編寫python代碼和編寫pythonic代碼之間存在很大差異。
  • 加快程序運行速度只需一行 Python 代碼
    何不試試 mapmap 這一小巧精緻的函數是簡捷實現 Python 程序並行化的關鍵。map 源於 Lisp 這類函數式程式語言。它可以通過一個序列實現兩個函數之間的映射。創建好 Pool 對象後,並行化的程序便呼之欲出了。
  • Heartrate:如追綜心跳般實時動態可視化監測Python程序運行
    但是 Python 有一個受到詬病的特點——運行速度低下。因此,Python 開發者需要經常對程序進行監控和調試,使代碼運行變得高效。近日,一位開發者開源了一個 Python 工具,用戶可以實時動態地監控 Python 程序的運行情況,逐行追蹤代碼的運行時間,而且整個過程是可視化的。
  • Python 每天定時發送一句情話|原力計劃
    定時發送簡訊這一步算是我們的主程序了,在這一部分裡,我們要使用之前的代碼先獲取情話list,再設置定時任務,每天固定的時間點把簡訊發到女神手機上。("%H:%M:%S", time.localtime())# 此處設置每天定時的時間if time_now == "15:29:00":# 需要執行的動作print('定時任務執行一次') time.sleep(2) # 因為以秒定時,所以暫停2秒,使之不會在1秒內執行多次結果:/usr/bin/python3.7 /home/baldwin/PycharmProjects
  • C語言定時關機程序,一言不合就分享!「源碼」
    寫一個定時關機的小程序,可以立即關閉計算機,也可以一段時間後關閉計算機。這裡主要考察system()命令。#include<string.h>#include<stdlib.h>int main(){    char cmd[20]="shutdown -s -t ";    char t[5]="0";    int c;    system("title C語言關機程序
  • 慢步python,如何用python語言創造出一個真正的獨立exe程序?
    我們學習編程,終極目標還是編寫一個獨立的應用程式。獨立的應用程式應該像QQ,微信一樣不依靠其他程序運行,只有平臺支持,就可以運行。從這個意義上說,所用應用程式都是基於作業系統運行的。那麼如何用python語言創造出一個真正的獨立的應用程式?就是我們電腦上的exe程序?
  • 說說Python程序的執行過程(一)
    計算機是不能夠識別高級語言的,所以當我們運行一個高級語言程序的時候,就需要一個「翻譯機」來從事把高級語言轉變成計算機能讀懂的機器語言的過程。這個過程分成兩類,第一種是編譯,第二種是解釋。編譯型語言在程序執行之前,先會通過編譯器對程序執行一個編譯的過程,把程序轉變成機器語言。運行時就不需要翻譯,而直接執行就可以了。最典型的例子就是C語言。