网站普通会员,到期时间为2016.3.1
他在今天2016.2.15购买了高级会员3个月
那么就需要在2016.3.1当天执行一个函数,更新此会员的数据库信息,更改他的会员版本号,更新他的到期时间
那么如何实现会员购买成功之后,写一段语句让后台在2016.3.1当天执行更新数据库呢?
求大神指点迷津
最后我在user表里增加了两个字段,更换的版本号,更换的到期时间
用户在原有版本未到期的情况下购买其他版本,先往user表里写入这两个字段
然后用户登陆的时候判断是否到期,如果到期了则更新用户的版本号和到期时间,清空更换的版本号和更换的到期时间
没有用到定期执行,不太懂这个怎么实现,就先这么做了,谢谢回答的几位~~
update: 了解了题主的需求后,已经为题主贡献了一套方案。详见评论区。
Flask 做不到这个吧。
况且,假如有 N 个会员,那你怎么办?轮询整个数据库?
而且每个会员的到期日期都不一样,你怎么让脚本在 N 个不同日期点上执行?
我觉得搞复杂了。
当一个用户购买了高级会员后,肯定会有个时长,肯定也就有了到期日。直接存在数据库里不就好了吗?至于会员版本号,可以直接存,也可以动态获取。
要不然,就定时查询数据库里所有已经到期的会员,更新这些记录的字段值。而不是在会员的到期日时再执行脚本更新记录。
不过这样也犯不着啊。
只用flask是做不到的→_→
不过你可以用linux的cron服务
一个解决方案是定期任务更新数据库
部分数据库产品支持
使用脚本定期更新也不是很困难
web框架里 tornado 有定期任务
用celery的周期性任务,每天执行一次,每次将今天到期的会员更新
celery可以搞定这个事情。