------------定時任務、非同步任務--------
pip install celery --target=d:\users\ex-ouyangl003\pycharmprojects\data_new\dg_meta_system\metadata_system\venv\lib\site-packages
# coding:utf-8
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, trigger='cron', second='*/5')
scheduler.start()
scheduler.add_job(func=aps_test, args=('定時任務',), trigger='cron', second='*/5')
scheduler.add_job(func=aps_test, args=('一次性任務',), next_run_time=datetime.datetime.now() + datetime.timedelta(seconds=12))
scheduler.add_job(func=aps_test, args=('迴圈任務',), trigger='interval', seconds=3)
backend='redis: # 返回值存入資料庫
broker='redis:') # :密碼@host/post/db
# -----windows celery
windows的celery只支援到3.1.25
pip install celery==4.3.0
pip install eventlet
tasks.task_name.delay()
t.ready()
t.get()
t.get(timeout=11)
t.get(propagate=false)
t.traceback
celery_timezone='asia/shanghai'
celery_enable_utc=true
# 官網推薦訊息序列化方式為json
celery_accept_content=['json']
celery_task_serializer='json'
celery_result_serializer='json'
請求耗時(比如大量的資料庫插入,傳送驗證郵件等)
利用celery來後台處理耗時任務可以保證flask能夠較快響應而且不被阻塞,同時減輕了資料庫的高峰寫入壓力
運算元據庫,操作完成後記得釋放資料庫連線,例如session.remove
celery是專注實時處理和任務排程的分布式任務佇列。
主要應用場景:
1,web應用,當需要觸發事件需要較長時間處理完成,可以交給celery進行非同步執行,執行完後返回結果,這段時間不用等待,提高系統的吞吐量和響應時間
2,完成任務時,需要額外的事件處理,如傳送郵件等
3,後台定時任務處理,celery可以幫助我們在不同伺服器進行定時任務管理
非同步任務 定時任務
一 在主程式開啟非同步註解功能 enableasync enableasync 開啟非同步註解功能 public class 二 標明非同步類 asyns service async 表注該類為非同步類 public class asynservice catch interruptedexcept...
springboot的非同步任務 定時任務的簡單案例
在我們開發專案時,常常會用到非同步處理任務,比如我們在 上傳送郵件,後台會去傳送郵件,此時會造成前台響應不動,直到郵件傳送完畢,響應才會成功,所以我們一般會採用多執行緒的方式去處理這些任務。1.新建乙個service包 2.建立asyncservice類 service public class a...
SpringBoot非同步任務與定時任務
使用步驟 啟動類裡面使用 enableasync註解開啟非同步任務 enableasync 開啟非同步功能 public class 編寫非同步任務 在springboot中,非同步任務可以使用 async註解,可以在方法上標註該註解,說明該方法是非同步方法,也可以標註在類上,表示該類的所有方法都是...