求一个PHP生成静态页面的思路。
最近在制作一个RSS咨询聚合类的网站。
所有的RSS分析进数据库,并将每一条记录生成静态页面。
每条记录插入时,还需判断记录是否重复(某些RSS源更新速度慢,须避免重复记录)
所有的RSS抓取全部用CRON完成。
求教。一个生成静态页面的思路。
如何根据每篇文章的ID生成静态页面?
我的思路有点窄。
第一:插入数据库同时,生成。(可能需要多次数据库检索,就像前面说的,还要检查记录是否重复,不是每条分析进来的RSS都生成。)
第二:定时设置CRON程序,将生成静态页面后的页面路径UPDATE进每条记录后,每次检索空记录,生成。但是如果数据库日益庞大,这种查询对数据库压力也不小)
大家是不是有好的方法,可以节省资源,又可以不遗漏的每条的生成静态页面?谢谢、
所有的RSS分析进数据库,并将每一条记录生成静态页面。
每条记录插入时,还需判断记录是否重复(某些RSS源更新速度慢,须避免重复记录)
所有的RSS抓取全部用CRON完成。
求教。一个生成静态页面的思路。
如何根据每篇文章的ID生成静态页面?
我的思路有点窄。
第一:插入数据库同时,生成。(可能需要多次数据库检索,就像前面说的,还要检查记录是否重复,不是每条分析进来的RSS都生成。)
第二:定时设置CRON程序,将生成静态页面后的页面路径UPDATE进每条记录后,每次检索空记录,生成。但是如果数据库日益庞大,这种查询对数据库压力也不小)
大家是不是有好的方法,可以节省资源,又可以不遗漏的每条的生成静态页面?谢谢、
作者: mumubangditu 发布时间: 2011-06-13
每条记录插入时, 需要判断记录是否重复..
那么我认为决策点就在这里, 在这里能够决定是否要生成这个html.
那么, 在这个点上来生成就是一个比较好的时机, 但是, 生成不一定要在此时完成, 把生成html作为一个独立的任务, 交由其他进程来处理.
下面是我理解的一个思路, 高手请拍砖.
思路: 通过任务队列实现静态页面的生成, 对于rss分析进数据库的过程不产生负担.
流程:
(以下流程假设任务队列使用system v的消息队列实现--php的semaphore扩展)
1. RSS分析系统:
1. 分析RSS
2. 判断是否重复(决策是否生成html)
3. 对需要生成html的, msg_send()将生成html需要的相关信息放入队列
2. 开发另外一个静态页面生成程序(可以使用php来做常驻进程, 并发控制可以使用pcntl)
1. msg_receive()
2. 收到一个任务之后, 生成html
3. 1,2两步往复循环.
如果把上面的system v消息队列换成memcacheq或其他独立缓存中间件, 那么就可以把生成静态页面的任务分离到其他物理机器上, 便于扩展.
那么我认为决策点就在这里, 在这里能够决定是否要生成这个html.
那么, 在这个点上来生成就是一个比较好的时机, 但是, 生成不一定要在此时完成, 把生成html作为一个独立的任务, 交由其他进程来处理.
下面是我理解的一个思路, 高手请拍砖.
思路: 通过任务队列实现静态页面的生成, 对于rss分析进数据库的过程不产生负担.
流程:
(以下流程假设任务队列使用system v的消息队列实现--php的semaphore扩展)
1. RSS分析系统:
1. 分析RSS
2. 判断是否重复(决策是否生成html)
3. 对需要生成html的, msg_send()将生成html需要的相关信息放入队列
2. 开发另外一个静态页面生成程序(可以使用php来做常驻进程, 并发控制可以使用pcntl)
1. msg_receive()
2. 收到一个任务之后, 生成html
3. 1,2两步往复循环.
如果把上面的system v消息队列换成memcacheq或其他独立缓存中间件, 那么就可以把生成静态页面的任务分离到其他物理机器上, 便于扩展.
作者: lgg201 发布时间: 2011-06-14