现在有这样一个需求,就是后台发布商品,不是立即上架,而是设定一个时间,到时间自动上架!我现在有两种想法。第一种方法:后台发布商品时,把设定上架的时间转换为unixtime,比如:1559192131然后,再用zadd写入到redis中$key='auto:publish';$time=1559192131;$data=['goodsId'=>1,'expire'=>1559195131,];$redis->zAdd($key,$time,json_encode($data));然后,用swoole起一个定时任务从zset中拿第一条数据,再对比时间是否达到自动发布的条件!如果自动发布了,就把第一条删除!第二种方法:就是直接向redis写入list数据$redis->rPush($key,json_encode($data));然后用swoole定时的去消费这个list$data=$redis->lPop($key);如果到了上架时间,就上架,如果没到,再把数据写到list中!我感觉这两种方法都不是太好,大神们有没有更好的解决办法?
牛魔王的故事
犯罪嫌疑人X
相关分类