數據匯出也是一個經常使用異步來處理的任務,流程和匯入其實87分像:

  • 創建 RegistraionExport model,這個 model 會紀錄是那個 user 作匯出、是哪一個 event 要匯出,以及存儲最後匯出的檔案
  • 創建一個 RegistrationExports controller,這個 controller 讓用戶能夠新增匯出紀錄,以及瀏覽匯出紀錄
  • 創建 ExportWorkerJob,這個異步任務會執行匯出操做,並將匯出的檔案放到 RegistraionExport model 上
  • 異步任務最後完成時,能夠寄 E-mail 通知用戶匯出的檔案已經準備好了

最後,匯出和匯入的功能要完整實作的話,還須要考慮檔案存儲的位置。咱們用 carrierwave 上傳的檔案,默認是公開的。可是匯出和匯入的檔案,應該也必需要檢查有沒有權限才行。這部分的實做牽扯到咱們使用哪一種檔案服務器: