首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在单个服务器上运行昂贵的计算

在单个服务器上运行昂贵的计算
EN

Software Engineering用户
提问于 2018-01-23 10:17:15
回答 2查看 130关注 0票数 4

我正在建设一个网站,让用户付费的服务,自动做一些视频编码他们。

编码需要几分钟。一个简单的解决方案将立即运行每个编码作业。这可能导致多个实例运行,并导致所有实例都非常缓慢地完成。处理可能会影响服务请求。

正如你所知,我不做太多的网络东西。我确信在这种情况下我应该使用一些工具/方法,但我不知道它是什么

EN

回答 2

Software Engineering用户

发布于 2018-01-23 10:34:31

这是一个非常高层次的问题,可能会因为“太宽泛”而被关闭。但简而言之:

您需要的是一种异步解决方案:请求不会启动昂贵的作业,而只是计划这样做,并返回一张票证,在此票证下您可以检查其状态。如果您只使用一台服务器,则需要使用某种类型的队列,以确保一个接一个地处理作业,并且在完成编码工作时关闭每一张票证。然后,用户必须在一个单独的请求中下载结果,大概是通过再次指定他们的票证号码和凭据。如果你很慷慨,你可能也想给客户一个估计的时间,他们的工作将完成。

你可能会得到更好的答案和更相关的搜索结果,通过命名一些斜体字。

票数 7
EN

Software Engineering用户

发布于 2018-01-23 17:18:08

基本上,你不能用一个网络服务器(非常有效)来完成这个任务。

您需要第二台计算机运行cron作业/windows服务或类似程序。这就是“工作过程”。

您的and服务器,接受不可执行的请求,并将其保存在某个地方。理想情况下,一个消息队列,但数据库将在紧要关头。

辅助进程等待队列或数据库表的条目。当它看到一个时,它加载数据,完成任务,并将结果放回数据库/队列中。

现在,您的用户可以加载另一个网页,该网页查询作业的状态,并在其准备就绪时给出结果。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/364501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档