如何实现页面广告随时上下线、过期自动下线及到时自动上线?

admin 105 0

如何实现这个问题,我认为可以从三个方面回答:

直接用程序来实现。

每访问一次就用程序按条件更新一次数据,最好写到基类里面,方便程序在使用时,每时每刻都在调用,这样就可以达到“看起来是”的效果。不过通过来实现的缺点就是,当没人访问的时候,程序就无法执行,数据没有更新,功能就不能实现。

Redis的缓存技术

这些页面配置的广告在一段时间内是不会变的,如果页面请求次数较多,广告查询次数就会很频繁,对数据库造成不必要的压力。所以可以引入缓存,降低数据库请求次数,缓解数据库压力。

可以在项目启动时异步把符合条件的页面广告配置信息存入Redis,那些还没到指定时间的先不放Redis,等到访问页面加载广告时,先查Redis,若无则按条件(>=nowtime)查库,查到后存Redis。

在接口中拿到广告配置信息后,判断当前时间是否在配置的时间区间内,由于一个页面配置多个广告,不同广告时间也不同,所以要迭代,把符合的返回,有过期的就做标记,然后把整个页面的配置信息在Redis里删除。

定时任务管理工具

webcron和jiacrontab 最初是一款为解决自己在实际生产中定时任务管理不便而开发出的 web 应用。