u013748058
张怒天
2018-04-26 16:59
采纳率: 37.5%
浏览 923
已采纳

服务使用到期时间倒计时

产品使用到期时间 购买天数+创建时间=到期时间
用什么方法判断只要到期时间大于当前当前时间就把数据库中的数据设置为false呢?用定时任务执行吗?我的问题是比如到期时间是8月8号中午12点 如果过了这个时间,谢怎么把数据库中数据设置为false。谢谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • caozhy
    已采纳

    你的认识有一个很大的误区,就是计算机程序并不需要真实地模拟现实,它只是实现正确的逻辑

    举例来说,你打开一个文档,文档很长,超过了屏幕的范围,那么word或者acrobat reader并不需要将整个文档全部渲染一遍,然后把其中用户可以看到的部分显示出来,而实际上只要渲染窗口可见的部分就可以了。因为从用户的角度看,两者是结果等价的。

    回到你这个问题,实际上你没有必要在“到期”的那个瞬间将什么字段设置为false,因为如果没有任何新的查询发生,没有人知道这些部分到底是true false,你设置不设置都是一样的效果。
    你要做的就是在用户下一次查询的时候,判断下,是否超过了期限,并且在那个时候设置false就可以了。而下次查询,可能是超期过后一秒,也可能是超期过后1年,这不重要。

    点赞 评论
  • qq_41507845
    爪哇还是java 2018-04-26 17:30

    1.你就用定时任务每天晚12点检测有没有到期 到期就去改数据库的字段就好了 想精确到时分秒有点那个

    点赞 评论
  • sinat_28984567
    二月十六 2018-04-27 01:16

    如果可以特定每天某个时间点执行一次判断,那么就用数据库的作业实现,定义好每天执行的时间点,以及执行的语句是什么。
    如果需要精确到分秒,用程序写一个定时器,然后到时间的了执行对应的程序代码,修改数据。

    点赞 评论
  • weixin_42080504
    have_power 2018-04-29 11:43

    你觉得你这个属于数仓设计了,你可以建个小表,字段包括那三个时间和当前时间这四个字段,当到期时间等于当前时间的时候就false,把这个判断和逻辑都放job里就行了。

    点赞 评论
  • weixin_39447676
    leiZhengZheng 2019-10-09 11:22

    图片说明

    点赞 评论

相关推荐