這個產品目前有五十小時以上的影片內容,每一次上架都會多十個小時左右的影片,並有一些相關的資料必須處理,確保資料完整且一致。偶爾,也有可能需要把所有內容全部更新(若內容製作方無法確定更動的資料有哪一些)
為此我們有兩個主要的工具:
技術關鍵字:Docker、Redis、MongoDB、Node.js、Hierarchical Scheduling
在這個部分,我負責:
平行化影片處理平台以 Redis 作為工作佇列以及即時數值平台,透過 Pub/Sub 以及 Node.js 後端讓管理者可以透過瀏覽器監看工作進度以及伺服器狀態。
上架程式因為對同一個文件的讀寫必須間隔一段時間,否則會造成資料庫讀寫錯誤。透過將對同一個文件的寫入隔開,先進行不相關的寫入,排程之後每一次上架可以趨近整體的 lower bound。(lower bound 為需要寫入次數最多的文件所需要的時間)