Python利用APScheduler實現定時任務框架
APScheduler是一款功能非常強大的定時任務框架。利用APScheduler框架我們可以很方便實現一個基於Python的定時任務系統
1,安裝
pip install apscheduler
2,簡單呼叫(一次性呼叫任務)
from apscheduler.schedulers.blocking import BlockingScheduler import datetime def aps_test(): print (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), '你好') scheduler = BlockingScheduler() scheduler.add_job(func=aps_test, next_run_time=datetime.datetime.now() + datetime.timedelta(seconds=2)) scheduler.start()
啟動後兩秒,執行任務aps_test()
3,在flask中使用APScheduler(也是一次呼叫性任務)
from flask import Flask,jsonify from flask_apscheduler import APScheduler import datetime import random app = Flask(__name__) queue = [] class Config(object): JOBS = [ { 'id': 'jobjob', # 'func': 'jobs:job1', 'func': '__main__:job1', 'args': (1, 2), 'next_run_time':datetime.datetime.now() + datetime.timedelta(seconds=10) } ] SCHEDULER_API_ENABLED = True def job1(a, b): global queue while True: if len(queue) > 10: queue = [] else: ranInfo = random.randint(1, 7) # 隨機1-7 queue.append(ranInfo) @app.route("/getImgInfo") def getImgInfo(): global queue return jsonify({'status': 0, 'errmsg': queue}) if __name__ == '__main__': app.config.from_object(Config()) scheduler = APScheduler() # it is also possible to enable the API directly # scheduler.api_enabled = True scheduler.init_app(app) scheduler.start() app.run()
說明:使用定時排程任務是為了解決一個問題。因為後臺有個死迴圈程式,相當於上面的job1,我要獲得該程式中的queue資訊。不使用排程任務,web程式就啟動不起來。我想過使用訊息佇列,把web程式和死迴圈程式拆成兩個程式。一個向訊息佇列中發訊息,另一個向訊息佇列中取訊息。但那樣太麻煩了,還有許多這樣那樣的問題。
現在使用定時排程任務就能完美解決了,上面的程式是在啟動後10秒這行job1任務。
4,參考部落格地址
相關推薦
Python利用APScheduler實現定時任務框架
APScheduler是一款功能非常強大的定時任務框架。利用APScheduler框架我們可以很方便實現一個基於Python的定時任務系統 1,安裝 pip install apscheduler 2,簡單呼叫(一次性呼叫任務) from apscheduler.sc
Flask(十一)flash與APScheduler 實現定時任務
.config spa ash ret cond 細節 bsp conf 視圖 from flask import Flask from flask_apscheduler import APScheduler # 引入APScheduler class Conf
spring(springboot)利用註解實現定時任務並實現非同步處理
spring3.0之後就實現了自己的定時任務,而且非常簡單 1.在啟動類上加 @EnableScheduling 註解開啟定時任務支援 2.在自己的定時任務類上加 @EnableScheduling 即可,第一步不用說了,第二步程式碼如下 @Configuration/
python 操作crontab 實現定時任務
crontab預設編輯器為nano,不方便使用。修改crontab預設編輯器為vi或者其他的編輯器。export EDITOR="/usr/bin/vim" ; crontab -e更簡單的辦法,直接執行命令:select-editor然後選擇編輯器
python-利用senleium實現定時重啟路由器
color 重啟 pin start exception starting datetime man import from selenium import webdriver import time #from datetime import * #import sen
Python定時任務框架APScheduler學習詳解
情況 類型 container 邏輯 專業 取值 控制 scheduled 執行器 轉載一篇文章,講解了Python定時任務框架APScheduler的使用,原文地址:https://www.cnblogs.com/luxiaojun/p/6567132.html,內容如下
python 定時任務框架APScheduler
APScheduler簡介 在平常的工作中幾乎有一半的功能模組都需要定時任務來推動,例如專案中有一個定時統計程式,定時爬出網站的URL程式,定時檢測釣魚網站的程式等等,都涉及到了關於定時任務的問題,第一時間想到的是利用time模組的time.sleep()方法使程式休眠來達
如何在python的定時任務框架apscheduler中尋找丟失的定時任務
http://apscheduler.readthedocs.io/en/latest/modules/schedulers/base.html?highlight=add_jobstore add_jobstore(jobstore, alias='default'
Spring+Quartz框架實現定時任務(集群,分布式)
log cor alt 放置 這一 表達 mod 建數據庫 strac 1、定時任務的必要性:定時任務在應用中的重要性不言而喻,大多是應用,特別是金融應用更是離不開定時任務,能用定時任務來處理異常訂單,完成跑批,定時活動(雙11)等。在初期應用的訪問量並不是那麽大,
Spring整合Quartz框架實現定時任務跑批(Maven完整版)
觸發器 delay cut www 方法 lin job 定時任務 任務調度 Quartz 介紹Quartz is a full-featured, open source job scheduling service that can be integrated with
在Java web專案springMVC框架中實現定時任務
在工作中遇到一個需求,需要定時自動執行某項功能,這就需要用到定時任務了。首先先來理一下實現思路,定時任務可以用Java.util中的timer類,把需要定時執行的任務封裝到timer類的排程表中,這個timer物件需要在程式初始化時建立,這樣才可以讓它自動執行。那麼我們就可以想到需要借用
利用pendingintent 和AlarmManager實現定時任務的一些分析
PendingIntent 獲取 PendingIntent物件的方法: 可以通過getActivity(Context context, int requestCode, Intent intent, int flags)系列方法從系統取得一個用於啟動一個
MAC OS和Linux下的crontab實現定時任務(執行python等指令碼)
前言 crontab命令常見於Unix和類Unix的作業系統中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀指令,並將其存入到“crontab”檔案中,以供之後讀取和執行。 使用方法 1.crontab -e 編輯自定義自己的任務,儲存退出後自動新增到cron
Linux VPS主機利用Crontab實現定時重啟任務
第一、安裝Crontab可執行環境 一般的VPS/伺服器是支援的,但是有些可能沒有支援就需要我們來給予安裝。 A - centos系統 #安裝Crontab yum install vixie-cron crontabs #設定開機啟動Crontab
quartz java實現的定時任務框架
概述瞭解Quartz體系結構Quartz對任務排程的領域問題進行了高度的抽象,提出了排程器、任務和觸發器這3個核心的概念,並在org.quartz通過介面和類對重要的這些核心概念進行描述:●Job:是一個介面,只有一個方法void execute(JobExecution
不用任何框架,Java 就能實現定時任務的 3 種方法!
是的,不用任何框架,用我們樸素的 Java 程式語言就能實現定時任務。 今天,棧長就介紹 3 種實現方法,教你如何使用 JDK 實現定時任務! ## 1、 sleep 這也是我們最常用的 sleep 休眠大法,不只是當作休眠用,我們還可以利用它很輕鬆的能實現一個簡單的定時任務。 **實現邏輯:**
PHP實現定時任務的幾種方式
選項 等待 process 一個 temp 表示 服務器 實現 ref 關於定時任務,之前以前認識了一種最常用的:crontab定時任務。通過linux的定時任務去實現。今天又認識了一下php實現定時方式的其它方式,總結一下。 一 服務器定時任務 服務器定時任務,其實就是u
Spring與Quartz的整合實現定時任務調度
java代碼 content sta 一個bug next 小時 change nsa 發現 Spring與Quartz的整合實現定時任務調度 博客分類: Java Web SpringQuartz任務調度定時任務 最近在研究Spring中的定時任務功能,最好的
JAVA實現定時任務
col 時間 頻率 set 進行 con hour gettime test import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util
基於spring+quartz的分布式定時任務框架
path simple ngs 分布 方式 fix set 分布式 .cn http://www.cnblogs.com/aaronfeng/p/5537177.html 問題背景 我公司是一個快速發展的創業公司,目前有200人,主要業務是旅遊和酒店相關的,應用叠