比如一个用户置顶一个文章,置顶了 10 天。
到期后这个文章自动取消置顶。
我的想法是
用时间差与这个置顶时间判断一下。
如果大于这个时间,就在文章加裁的时候执行一个函数
把置顶的字段设置为:is_top = False
但是这样感觉哪里总有点不对的地方。
大家对这个有什么思路吗?
谢谢。
![]() | 1 vone 2022-08-14 23:30:24 +08:00 order by case when expires<now() then 0 else 1 end |
![]() | 2 kennir 2022-08-14 23:32:43 +08:00 via iPhone 如果是我会考虑用 |
3 chenjjl 2022-08-14 23:46:23 +08:00 查询文章不分页吗?不分页的话这么做倒是没啥毛病 |
![]() | 4 huangzhiyia 2022-08-15 00:40:11 +08:00 via Android 1L 已经给出了答案,SQL 取文章的时候过滤下置顶到期时间就可以了。 |
5 ChoateYao 2022-08-15 01:51:04 +08:00 定时任务、延迟队列 |
![]() | 6 param 2022-08-15 07:59:10 +08:00 via Android django 的话,用 annotate 算出时间差吧 |
![]() | 7 param 2022-08-15 08:01:07 +08:00 via Android objects.annotate(F("top_at")-timezone.now()) |
![]() | 8 DreamSpace 2022-08-15 09:22:04 +08:00 置顶列表存 redis ,再设个过期时间。 |
9 yinft 2022-08-15 13:44:55 +08:00 一楼的 sql 就够用了 |