David Kimura PRO said almost 2 years ago on Zipping Files :
I would probably queue up the background job and pass the jobs record id. This can manage the state of the background job. Once the job finishes, it can attach to this record the zipped file. It can then send out the notification and the user can download the finished zip.