V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ifconfig
V2EX  ›  问与答

系统平均派发券码算法问题?

  •  
  •   ifconfig · 2018-03-21 15:18:57 +08:00 · 859 次点击
    这是一个创建于 2431 天前的主题,其中的信息可能已经有所发展或是发生改变。

    描述

    现在有 75 万个券码在数据库,要求每天早上八点到晚上八点这个时间段派发,派发截至日期:2018-05-31

    要求

    要求每天派发平均多的券码,要求到 2018-05-31 刚刚好派完

    我的思路

    1.Redis set 一个券码的总数,每次请求 get 一次,实时计算 剩余券码 /剩余天数=每天要派发的券码 2.Mongo 记录每个时间段派发的券码


    请问下像这样的业务大家会怎样解决?求大牛给更好的思路

    4 条回复    2018-03-21 17:07:57 +08:00
    goodryb
        1
    goodryb  
       2018-03-21 16:06:48 +08:00
    非专业程序员的参考意见,如果是我的话:
    这种情况应该是记录一个已发码的数量
    假设每天发 n 个,第一天就是 x < n 的情况下发码,x>=n,则不发码
    第二天就是 x < 2*n,依次类推,每次发码后 x+1

    不过有一个问题,就是如果用上面的方法,假如前一天发码少了,这个数量会累计给当天,不符合每天平均法 n 个码

    具体逻辑上可能需要细化下
    ifconfig
        2
    ifconfig  
    OP
       2018-03-21 16:07:55 +08:00
    @goodryb 好方法,其实也没要求那么严谨,可以试试
    wsy2220
        3
    wsy2220  
       2018-03-21 16:16:44 +08:00
    提前生成好每天发的数量就行了
    John60676
        4
    John60676  
       2018-03-21 17:07:57 +08:00
    关注
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2907 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 06:24 · PVG 14:24 · LAX 22:24 · JFK 01:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.