我用ajax上传照片,操作和上传到s3需要花费很多时间。我听说在背景上完成任务会更好。我的应用需要等待照片上传。但是如果我选择背景方式,那么我将需要使用websockets或重复ajax来检查结果(链接到s3)(我对此并不满意)。 为什么在控制器(前台)中进行硬计算太糟糕了? 现在我使用Torquebox(Jruby),据我所知,它具有完美的并发性。这是否意味着等待上传到s3不会占用资源而且一切正常? 请在我的情况下写下前/后的利弊。谢谢!
答案 0 :(得分:1)
通常认为在对第三方服务的网络请求上阻止Web请求处理程序是不好的做法。如果该服务变得缓慢或不可用,这可能会堵塞您的所有Web进程,无论您使用什么ruby。这就是你所说的'前景'。
基本上这是您当前设置的流程(在前台):
显然,步骤3-5对于您的服务器来说是个坏消息,正如我之前所说,这个worker / thread / process(取决于您的ruby / rails服务器框架)将被“保留”,直到s3的响应为止收到(可能永远不会发生)。
这是与后台作业相同的流程,前端有一些javascript帮助通知:
现在有趣的前端:
我希望这能让你走上正确的道路。我认为为这个答案编写代码是低劣的,因为它似乎是你在寻找利弊。对于实际的实现想法,我将研究以下内容: