如何实现页面广告随时上下线、过期自动下线及到时自动上线?
如何实现这个问题,我认为可以从三个方面回答:直接用程序来实现。
每访问一次就用程序按条件更新一次数据,最好写到基类里面,方便程序在使用时,每时每刻都在调用,这样就可以达到“看起来是”的效果。
不过通过来实现的缺点就是,当没人访问的时候,程序就无法执行,数据没有更新,功能就不能实现。
Redis的缓存技术这些页面配置的广告在一段时间内是不会变的,如果页面请求次数较多,广告查询次数就会很频繁,对数据库造成不必要的压力。
所以可以引入缓存,降低数据库请求次数,缓解数据库压力。
可以在项目启动时异步把符合条件的页面广告配置信息存入Redis,那些还没到指定时间的先不放Redis,等到访问页面加载广告时,先查Redis,若无则按条件(>=nowtime)查库,查到后存Redis。
在接口中拿到广告配置信息后,判断当前时间是否在配置的时间区间内,由于一个页面配置多个广告,不同广告时间也不同,所以要迭代,把符合的返回,有过期的就做标记,然后把整个页面的配置信息在Redis里删除。
定时任务管理工具webcron和jiacrontab 最初是一款为解决自己在实际生产中定时任务管理不便而开发出的 web 应用。
本文经用户投稿或网站收集转载,如有侵权请联系本站。