java – 如果在线检查期间发生电源故障,我们如何更新用户再次登录门户时剩余的时间?

前端之家收集整理的这篇文章主要介绍了java – 如果在线检查期间发生电源故障,我们如何更新用户再次登录门户时剩余的时间?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在进行一个项目在线考试只是为了获得知识.
可能存在电源故障的情况,并且当候选人再次登录时,必须给出在电源故障期间浪费的时间.但是在我的javascript代码中,考试在服务器时间相应的2小时后结束(此处使用AJAX).时间结束后,学生将被重定向到主页.我想到了一个解决方案,但我没有找到实现它的开始.

As the session is maintained,so I can maintain the time he used from
2 hours and can be stored in database. when he relogin then that
particular row which corresponds to him can be checked and the time
can be updated.

但我无法实现它.请告诉我是否有其他解决方案或我认为的方向是对还是错.

考试时钟从2小时开始恢复.当电力故障出现时,它不会从正在滴答作响的时间恢复.在这种情况下,无论是发生电源故障还是候选人再次重新登录,都是一样的.我不是要求任何代码解决这个问题.我只想要一个我能想到的暗示或方向.我只是想知道它背后的概念是什么.

最佳答案
将问题形式化:

>用户登录并在t0开始他们的考试.他们的考试在t120结束.
>在考试结束前的某个时间点(考试前x分钟)(tx)出现电源故障,正在测试的人必须恢复考试.
>在tx之后的某个时刻,系统重新上线.
>在ty之后或之后的某个时刻,用户再次登录,将其称为tz.正如您所指出的,这等于ty.
>他们有权再花120到x分钟来完成考试.考试结束的时间点现在为tz(120 – x).

可能解决方

最初想到了一种非常面向会话的方法,但这可能是要走的路:

>使用句点p实现系统范围的时钟(想想“心跳”).对于系统启动的每个间隔p,递增全局计数器.
>将t0记录为每次检查的全局计数器.
>在另一行中,更新检查所用的时间.这是t0的当前值.在您的代码中,您可能具有保存正在进行的工作的功能,并在那里更新已用时间.还要更新每个页面/部分加载的已用时间.请注意,如果在上次经过的时间更新/进行中保存之间丢失了一些工作,那么他们将从那时起“返回”,因为他们上次过去的更新从未存储过.
>区间p将是一项政策决定.理论上,根据失败的时间,有人可以获得额外的p来完成考试.如果p是1秒,这不是什么大问题.如果是5分钟,这是一个更大的交易.当然,对于p的不同值,将存在性能权衡.此外,由于我们在这里没有处理实时系统,因此可能存在一些偏差.
>使用事务处理所有事情.当系统恢复时(并且在全局时钟再次开始滴答之前),任何中断的事务都需要回滚.

原文链接:https://www.f2er.com/js/429612.html

猜你在找的JavaScript相关文章