heroku上的后台工作网络是如何知道的's结束了
Background job on heroku how does the web know it's finished
因此,我创建的这个应用程序有时需要提取提要,而在heroku上总是超时,因为xml解析器需要时间。因此,每次加载页面时,我都会更改为通过Ajax进行异步加载。我仍然从Ajax调用中得到H12错误。现在我正在考虑使用Resque在后台运行作业。我可以做到这一点,但我怎么知道工作已经完成,这样我就可以通过AJAX将处理后的提要拉到html页面上呢?
不确定我的问题是否清楚,那么web层如何知道工作已经完成,它应该发出信号,例如(javascript中的onComplete)来填充页面上的内容?
有很多方法可以实现
-
JavaScript可以使用AJAX来轮询服务器,询问结果,服务器可以用"尚未"或结果进行响应。你一直在问,直到你得到结果。
-
你可以看看Juggernaut(http://juggernaut.rubyforge.org/)它可以让你的服务器推送到客户端
-
网络套接字是HTML5处理这个问题的方法。有一些宝石可以让你开始使用最佳RubyonRails WebSocket工具
此处存在架构问题。H12的原因是用户坐在那里的时间不会超过30秒。
通过将长时间运行的任务移动到Resque队列中,可以使其与前端web进程断开连接——由于进程隔离,两者无法通信。
因此,你需要审视自己在做什么以及如何做。例如,如果你正在提取一个提要,你能在用户需要看到输出并以某种方式缓存结果之前的某个时候这样做吗?或者你能接受用户对提要的请求,然后在你有数据让他们查看时给他们发电子邮件吗?等等。
你在这里遇到的问题是,你的用户要求的东西需要比合理的时间更长的时间才能完成,所以你需要好好看看你在做什么以及如何做。
- 如何知道哪个标记被谷歌地图点击了
- 如何准确地知道打开了哪个Foundation Modal窗口
- 如何知道用户已经重新加载了网页,使用jquery.如果用户重新加载网页,
- 如何知道是否加载了JavaScript(脚本)
- 我创建了一个Javascript待办事项列表,但想知道如何在浏览器刷新后保留这些帖子
- 一个html/javascript'小工具'知道用户何时单击了小部件外的任意位置
- 我需要迭代一个JSON数组——不知道如何做到——已经搜索过了,但仍然可以'我一点也不知道
- 如何知道angular完成了所有的处理和渲染
- AngularJS-我怎么知道何时解决了对父控制器的承诺
- 我怎么知道用户什么时候点击了类似Facebook的按钮
- 我的代码很完美,但我现在不知道为什么我发现了问题
- 我怎么知道Jqgrid已经准备好了
- 确定在核心转换结束中完成了哪个核心转换
- 我已经用javascript制作了一个幻灯片,但我不知道如何让我的照片发呆
- 两个精灵相撞 - 一个后端结束了另一个
- res.end() 是否结束了 async.waterfall
- 一行JS代码在Wordpress中被破坏了.不知道为什么
- heroku上的后台工作网络是如何知道的's结束了
- 什么结束了模态
- Kinect (One)在浏览器中,结束了NPAPI