python flask如何实现指定时间执行函数

alvy
  • 165

网站普通会员,到期时间为2016.3.1
他在今天2016.2.15购买了高级会员3个月
那么就需要在2016.3.1当天执行一个函数,更新此会员的数据库信息,更改他的会员版本号,更新他的到期时间

那么如何实现会员购买成功之后,写一段语句让后台在2016.3.1当天执行更新数据库呢?

求大神指点迷津


最后我在user表里增加了两个字段,更换的版本号,更换的到期时间
用户在原有版本未到期的情况下购买其他版本,先往user表里写入这两个字段
然后用户登陆的时候判断是否到期,如果到期了则更新用户的版本号和到期时间,清空更换的版本号和更换的到期时间

没有用到定期执行,不太懂这个怎么实现,就先这么做了,谢谢回答的几位~~

回复
阅读 6.8k
5 个回答
✓ 已被采纳

update: 了解了题主的需求后,已经为题主贡献了一套方案。详见评论区。


Flask 做不到这个吧。

况且,假如有 N 个会员,那你怎么办?轮询整个数据库?

而且每个会员的到期日期都不一样,你怎么让脚本在 N 个不同日期点上执行?

我觉得搞复杂了。

当一个用户购买了高级会员后,肯定会有个时长,肯定也就有了到期日。直接存在数据库里不就好了吗?至于会员版本号,可以直接存,也可以动态获取。

要不然,就定时查询数据库里所有已经到期的会员,更新这些记录的字段值。而不是在会员的到期日时再执行脚本更新记录。

不过这样也犯不着啊。

只用flask是做不到的→_→

不过你可以用linux的cron服务

一个解决方案是定期任务更新数据库

部分数据库产品支持

使用脚本定期更新也不是很困难

web框架里 tornado 有定期任务

用celery的周期性任务,每天执行一次,每次将今天到期的会员更新

celery可以搞定这个事情。

你知道吗?

宣传栏