页面静态化定时生成还是触发生成?

页面静态化定时生成还是触发生成?

我们都知道页面静态化可以减少对数据库的访问,降低服务器的压力。但是我们在使用Django框架编写代码的时候,往往会有这样的疑问,那就是使用定时任务定时生成静态化页面(每隔2分钟或其他科学时间);还是使用Django的第三方扩展Xadmin,在运营人员修改数据的时候触发生成静态页面。即,什么时候用定时生成?什么时候用触发生成。咋一看,会有这样的疑问,既然能够触发生成静态化页面,干嘛还要用定时任务生成呢?当然这是我的疑问。

首先,我们使用页面静态化是有一个前提的,那就是页面访问量很大,这种情况下,才有页面静态化的必要。
下面我说一下自己的想法,不对的地方麻烦你们指正。


很多时候我们数据库的数据,只有运营人员或开发人员可以进行修改,这种情况下,使用触发生成的方式。
使用Xadmin运营管理后台功能,在代码中(admin.py)对save_model()、delete_model()等方法进行重写,用户保存数据或删除数据的时候触发生成静态化页面的方法。

class SKUAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        """
        站点管理类的钩子功能,在添加数据或者编辑数据会自动执行当前方法
        :param request: 本次admin站点中客户端操作的请求对象
        :param obj: 本次操作的模型对象
        :param form: 本次操作的表单系统对象
        :param change: 本次操作的数据[编辑操作时提交的数据]
        :return:
        """
        obj.save()
        # 详情页的静态化页面由运营人员编辑商品信息时触发生成,静态化页面
        generate_static_sku_detail_html.delay(obj.id)

那么,什么时候需要使用定时任务定时生成静态化页面呢。笔者认为,当第三方可以对我们数据库的数据进行修改的时候,我们需要考虑定时生成静态化页面。因为这种情况下,第三方直接修改的是我们数据库的内容,并没有经过Xadmin运营管理后台,也就无所谓触发生成静态化页面。

举个栗子,同样是商品详情页的商品,淘宝和京东的做法可能不同,当然,这只是我的猜测。

  • 淘宝做的是平台,第三方商家可以对自己售卖的商品修改价格,更改数据库数据,这个时候直接修改的是数据库的数据,不能通过Xadmin扩展来触发生成静态化页面,在不得不做静态化页面的前提下,就需要使用定时任务定时生静态化页面。当然,定时任务定的时间要根据实际情况而定,例如,双11的时候,时间要定得短一点。另外,可以使用时间戳,在一个标准的时刻,生成静态化页面。
  • 京东自营店,假设只有运营人员能够对数据进行修改,并没有第三方商家对数据库数据进行修改,这种情况下,仅仅使用Xadmin对数据修改时做触发生成静态化页面的处理就可以了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值