Performance 什么';该用例的推荐解决方案/技术是什么?

Performance 什么';该用例的推荐解决方案/技术是什么?,performance,optimization,Performance,Optimization,我正在建立一个网站,提供各种主题的一对一辅导。辅导是通过网络进行的(视频通话、文档上传等),最重要的事情之一是客户按分钟付费。我的问题是:我如何知道辅导课程何时结束(以便我能够正确地向客户开具账单) 我计划将指导课程大致如下存储在db中: coach_id:integer client_id:integer created_at:datetime updated_at:datetime in_progress:boolean 在会话结束时,我将对更新的和创建的进行区分,并获

我正在建立一个网站,提供各种主题的一对一辅导。辅导是通过网络进行的(视频通话、文档上传等),最重要的事情之一是客户按分钟付费。我的问题是:我如何知道辅导课程何时结束(以便我能够正确地向客户开具账单)

我计划将指导课程大致如下存储在db中:

  coach_id:integer
  client_id:integer
  created_at:datetime
  updated_at:datetime
  in_progress:boolean
在会话结束时,我将对更新的和创建的进行区分,并获得会话的长度

以下是我看到的潜在问题:

  • coach失去internet访问=>在这种情况下,客户端将按下网站上的一个按钮,该按钮将通知我们会话有问题,会话的
    updated\u at
    将被更新,并且
    in\u progress
    将被设置为
    false

  • 客户端失去internet访问=>与coach失去internet访问相同的工作流

  • 两者都无法上网=>这是最棘手的情况。我不确定如何通知服务器会话应被视为已完成。我正在考虑通过推送来完成,让客户的浏览器和教练的浏览器每分钟更新一次服务器。在最坏的情况下,该错误将导致账单相差1分钟,这是可以接受的。缺点是,我认为这可能会给服务器带来很大的负载,我不知道一旦我们有很多用户,这是否仍然是一个可行的解决方案


你认为这种方法怎么样?如果有必要,应用程序将构建在Rails 3.2上。

为什么不研究HTML5
EventSource
WebSocket
作为检测连接/连接丢失的可能方法

至少在.NET中(我猜在所有的服务器环境中),可以看到客户端是否仍然连接(tcp)。EventSource/WebSockets可帮助您建立一个始终打开的连接(与短时间连接的请求/响应连接相反),您可以监视该连接是否仍在运行/打开


因此,解决方案基本上需要在websocket服务器上实现。

为什么不研究HTML5
EventSource
websocket
作为检测连接/连接丢失的可能方法

至少在.NET中(我猜在所有的服务器环境中),可以看到客户端是否仍然连接(tcp)。EventSource/WebSockets可帮助您建立一个始终打开的连接(与短时间连接的请求/响应连接相反),您可以监视该连接是否仍在运行/打开


因此,解决方案基本上需要在websocket服务器上实现。

为什么不研究HTML5 EventSource或websocket作为检测连接/连接丢失的可能方法?@PeterAronZentai,是的,但是如果两个人都失去连接呢?谁将通知服务器?至少在.NET中(我猜在所有服务器环境中)可以看到客户端是否仍然连接(tcp)。EventSource/WebSockets可帮助您建立一个始终打开的连接(与短时间连接的请求/响应连接相反),您可以监视该连接是否仍在运行/打开。@PeterAronZentai,我也一直在想,这个解决方案需要在websocket服务器上实现。我看不到任何其他可靠的方法…为什么不研究HTML5 EventSource或websocket作为检测连接/连接丢失的可能方法?@PeterAronZentai,是的,但是如果两个人都失去连接呢?谁将通知服务器?至少在.NET中(我猜在所有服务器环境中)可以看到客户端是否仍然连接(tcp)。EventSource/WebSockets可帮助您建立一个始终打开的连接(与短时间连接的请求/响应连接相反),您可以监视该连接是否仍在运行/打开。@PeterAronZentai,我还一直认为这个解决方案需要在websocket服务器上实现。我看不到任何其他可靠的方法。。。