java任務調度框架,python分布式任務調度_Python開源任務調度框架介紹

 2023-12-25 阅读 26 评论 0

摘要:引言當開發者希望以指定的間隔時間執行各類操作,并完成一些無需用戶輸入的任務,或者是一些“防止用戶長時間等待”的需求時,比如搜索這樣的例子,當用戶輸入關鍵字點擊搜索的時候,到瀏覽器返回結果這個時間的長短直接影響了用戶體驗,

引言

當開發者希望以指定的間隔時間執行各類操作,并完成一些無需用戶輸入的任務,或者是一些“防止用戶長時間等待”的需求時,比如搜索這樣的例子,當用戶輸入關鍵字點擊搜索的時候,到瀏覽器返回結果這個時間的長短直接影響了用戶體驗,另外當多個用戶同時提交不同的搜索任務的時候,如何來調度這些任務,加上一些不是要求實時性的任務,可以在系統處于低負荷時進行定時啟動,比如每天凌晨3點定時啟動等等。針對上述這些復雜情況,就需要一個能夠顧全大局的解決方案,還好,已經有強大的開源社區開源了一系列任務調度框架,比如基于Python的Celery、RQ、APScheduler等。

Celery

java任務調度框架、Celery是一個簡單、靈活且可靠的,處理大量消息的分布式系統,并且提供維護這樣一個系統的必要工具。它支持使用任務隊列的方式在分布的機器、進程、線程上執行任務調度。

Celery的架構由三部分組成,分別是消息中間件(message broker),任務執行單元(worker)和任務執行結果存儲(task result store)。

消息中間件:Celery本身不提供消息服務,但是可以方便的和第三方提供的消息中間件集成,比如,RabbitMQ、Redis、MongoDB、Django ORM、IronMQ等。

任務執行單元:worker并發的運行在分布式的系統節點中。

python高并發web框架、任務結果存儲:用來存儲worker執行的任務結果,支持多種不同的存儲方式,比如AMQP、Redis、MongoDB、Django ORM、IronCache等。

安裝

用pip安裝

$pip install -U Celery

python庫、$ tar xvfz celery-0.0.0.tar.gz

$ cd celery-0.0.0

$ python setup.py build

# python setup.py install

python多線程爬蟲?RQ

Redis Queue(RQ)是一款輕量級的分布式異步任務隊列,基于Redis作為broker,將任務存放到redis里面,然后后臺執行指定的job。RQ的架構由三部分組成,分別是Job,Queue,Worker。

Job:用來實現具體功能開發定義的函數。

Queue:調用RQ把Job放入隊列Queue中。

python類屬性和類方法?Worker:負責從redis里面獲取任務并執行,根據具體情況返回函數的結果。

安裝

用pip安裝

pip install rq

python任務調度,APScheduler

APScheduler是一個Python定時任務框架,使用起來十分方便。提供了基于日期、固定時間間隔以及crontab類型的任務,并且可以持久化任務、并以daemon方式運行應用.APScheduler由四個基本組件構成。

觸發器(trigger):包含調度邏輯,每一個作業有它自己的觸發器,用于決定接下來哪一個作業會運行。除了他們自己初始配置意外,觸發器完全是無狀態的。

作業存儲(job store):存儲被調度的作業,默認的作業存儲是簡單地把作業保存在內存中,其他的作業存儲是將作業保存在數據庫中。一個作業的數據將在保存在持久化作業存儲時被序列化,并在加載時被反序列化。調度器不能分享同一個作業存儲。

執行器(executor):處理作業的運行,他們通常通過在作業中提交制定的可調用對象到一個線程或者進城池來進行。當作業完成時,執行器將會通知調度器。

調度器(scheduler):是其他的組成部分。你通常在應用只有一個調度器,應用的開發者通常不會直接處理作業存儲、調度器和觸發器,相反,調度器提供了處理這些的合適的接口。配置作業存儲和執行器可以在調度器中完成,例如添加、修改和移除作業。

你需要選擇合適的調度器,這取決于你的應用環境和你使用APScheduler的目的。通常最常用的兩個:

– BlockingScheduler: 當調度器是你應用中唯一要運行的東西時使用。

– BackgroundScheduler: 當你不運行任何其他框架時使用,并希望調度器在你應用的后臺執行。

安裝

用pip安裝

pip install apscheduler

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/194634.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息