使用Python的音频处理服务器工作流程

问题描述 投票:0回答:1

我通常位于堆栈的前端,但是我需要在服务器上进行一些音频处理工作并下载结果。

我希望用户能够将MP3文件上传到服务器,并使其使用Python脚本处理该文件,并允许用户下载结果。该过程可能需要10到20分钟,因此一旦完成,我需要通知用户。

我对如何将MP3文件上传到服务器了解得很清楚,但是到此为止。我不确定如何启动Python脚本,如何将结果存储在Web服务器上,然后提供给它临时下载。

有人可以大笔向我解释我该怎么做吗?我不希望有人为我做这项工作,但我正在寻找可以从中开始阅读有关如何做一些事情的建议。

这可以完成无服务器功能的工作吗?

谢谢!

python audio server serverless audio-processing
1个回答
0
投票

这是“后台”或异步任务的经典示例。从用户的角度(人真的不想坐在那里等待20分钟)和从Web服务器的角度来看(都不应挂在此请求上)。

推荐的解决方法是某种任务/作业队列系统。

上传文件后,Web服务器将创建任务并将其提交到队列。然后返回“接受作业”,并完成请求。然后,最好由后端工作进程异步处理此任务。工作人员完成后,工作结果将存储在数据库中。工作人员还可以构造可用于查看此结果的URL。然后可以将该URL发送给用户(例如通过电子邮件)以访问结果。Web前端应从此URL根据存储​​在数据库中的结果来呈现页面。

[Python的良好开源和独立于供应商的任务队列堆栈是Celery。我建议使用RabbitMQ作为消息后端,并使用Redis或Postgres / MySQL作为结果后端。

two-part blog series是对该主题的很好的介绍。

© www.soinside.com 2019 - 2024. All rights reserved.