python定時任務是非同步的嗎 定時任務 非同步任務

2021-10-11 13:01:56 字數 1712 閱讀 5544

------------定時任務、非同步任務--------

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註解,可以在方法上標註該註解,說明該方法是非同步方法,也可以標註在類上,表示該類的所有方法都是...