为了账号安全,请及时绑定邮箱和手机立即绑定

有没有人遇到过这个问题哈!商品自动如何上架?

有没有人遇到过这个问题哈!商品自动如何上架?

慕容708150 2019-09-26 09:05:52
现在有这样一个需求,就是后台发布商品,不是立即上架,而是设定一个时间,到时间自动上架!我现在有两种想法。第一种方法:后台发布商品时,把设定上架的时间转换为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中!我感觉这两种方法都不是太好,大神们有没有更好的解决办法?
查看完整描述

2 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

其实楼上答案我觉得都可以实现,但是你可以换思路,比如商品在加入数据库的时候就有个设置,例如,status=1是正常发布的商品,status=2是定时上线下线的商品,这个时候就要判断现在是不是可以展示的商品了,sql如
select*fromgoodswherestatus=1unionallselect*fromgoodswherestatus=2andonline_time>=XXXXandoffline_time
                            
查看完整回答
反对 回复 2019-09-26
  • 2 回答
  • 0 关注
  • 209 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号