1. 程式人生 > 實用技巧 >java 呼叫攝像頭拍照

java 呼叫攝像頭拍照

1.celery介紹

https://www.cnblogs.com/xiaonq/p/11166235.html#i1

1.1 celery應用舉例

  • Celery 是一個 基於python開發的 分散式非同步訊息任務佇列 ,通過它可以輕鬆的實現任務的非同步處
    理,如果你的業務場景中需要用到非同步任務,就可以考慮使用celery
    *** 你想對100臺機器執行一條批量命令,可能會花很長時間 ,但你不想讓你的程式等著結果返回,而**
    是給你返回 一個任務ID,你過一段時間只需要拿著這個任務id就可以拿到任務執行結果, 在任務執
    行ing進行時,你可以繼續做其它的事情
    *** Celery 在執行任務時需要通過一個訊息中介軟體來接收和傳送任務訊息,以及儲存任務結果, 一般使**
    用rabbitMQ or Redis

1.2 Celery有以下優點

*** 簡單:一單熟悉了celery的工作流程後,配置和使用還是比較簡單的**
*** 高可用:當任務執行失敗或執行過程中發生連線中斷,celery 會自動嘗試重新執行任務**
*** 快速:一個單程序的celery每分鐘可處理上百萬個任務**
*** 靈活: 幾乎celery的各個元件都可以被擴充套件及自定製**

1.3 Celery 特性

  • 方便檢視定時任務的執行情況, 如 是否成功, 當前狀態, 執行任務花費的時間等.
  • 可選 多程序, Eventlet 和 Gevent 三種模型併發執行.
  • Celery 是語言無關的.它提供了python 等常見語言的介面支援.

2.celery 元件

https://www.cnblogs.com/xiaonq/p/11166235.html#i2

2.1 Celery 扮演生產者和消費者的角色

  • Celery Beat : 任務排程器. Beat 程序會讀取配置檔案的內容, 週期性的將配置中到期需要執行的任
    務傳送給任務佇列
  • Celery Worker : 執行任務的消費者, 通常會在多臺伺服器執行多個消費者, 提高執行效率
  • Broker : 訊息代理, 佇列本身. 也稱為訊息中介軟體. 接受任務生產者傳送過來的任務訊息, 存進佇列再
    按序分發給任務消費方(通常是訊息佇列或者資料庫)
  • Producer : 任務生產者. 呼叫 Celery API , 函式或者裝飾器, 而產生任務並交給任務佇列處理的都是任
    務生產者
  • Result Backend : 任務處理完成之後儲存狀態資訊和結果, 以供查詢

2.2 celery架構圖( 生產者消費者模型 )

2.3 產生任務的方式

  • 釋出者釋出任務(WEB 應用)
  • 任務排程按期釋出任務(定時任務)

2.4 celery 依賴三個庫: 這三個庫, 都由 Celery 的開發者開發和維護.

  • billiard : 基於 Python2.7 的 multisuprocessing 而改進的庫, 主要用來提高效能和穩定性.
    librabbitmp : C 語言實現的 Python 客戶端
    kombu : Celery 自帶的用來收發訊息的庫, 提供了符合 Python 語言習慣的, 使用 AMQP 協議的高階
    藉口