数据汇出也是一个经常使用异步来处理的任务,流程和汇入其实87分像:

  • 创建 RegistraionExport model,这个 model 会纪录是那个 user 作汇出、是哪一个 event 要汇出,以及存储最后汇出的档案
  • 创建一个 RegistrationExports controller,这个 controller 让用户能够新增汇出纪录,以及浏览汇出纪录
  • 创建 ExportWorkerJob,这个异步任务会执行汇出操做,并将汇出的档案放到 RegistraionExport model 上
  • 异步任务最后完成时,能够寄 E-mail 通知用户汇出的档案已经准备好了

最后,汇出和汇入的功能要完整实作的话,还须要考虑档案存储的位置。咱们用 carrierwave 上传的档案,默认是公开的。可是汇出和汇入的档案,应该也必需要检查有没有权限才行。这部分的实做牵扯到咱们使用哪一种档案服务器: