PushWeb 采集站点信息发布的最佳方案

PushWeb,应该算是我自造的一个词,Push发送,PushWeb则是把采集到的数据发送到站点的一个方案,临时使用vbscript脚本编写。那有的朋友可能会说CMS后台之类的,或者采集软件直接发上来不更好吗?原因如下:

CMS后台,来回复制好麻烦,而且容易出错。复制一篇两篇还可以,如果1000,10000呢?

采集软件发送,这个呢?如果信息都是采集的,按原来的列表顺序原封不动的发上来,恐怕。。。。而且在采集软件了并不是很方便的控制。

PushWeb的好处,可以同时发送数据到同一台服务器上的多个站点。为什么不用asp?因为一般iis站点,我习惯每个站点权限独立,假如pushWeb拥有所有站点的权限,安全性可能会降低。而且同时查询较多数据时,可能占用cpu过多,而影响web站点,而wscript可以通过累了sleep一下。另外后期准备为站点加些计划任务(比如自动生成,现在还是Beta0.1,仅供发布信息),这样只需要一个进程就可以了。

实现方法:

'pushWeb beta0.1

'刷新时间
const pushWeb_flush_Time=10000
'数据库路径
const pushWeb_dbPath="D:\WebDesign\Products\pushWeb\pushWebDB.mdb"


function pushWeb()
	dim conn,rs,push_id,push_webid,push_sql
	dim web_db,web_name
	dim push_Arr,push_str
	
	set conn=createobject("ADODB.connection")
	conn.open "provider=microsoft.jet.oledb.4.0;data source="&pushWeb_dbPath
	set rs=conn.execute("select push_id,push_webid,push_sql from push")
	if rs.eof then
		push_id=0
		wscript.echo "没有更新,"&pushWeb_flush_Time/1000&"秒后再检查..."
	else
		push_id=rs(0)
		push_webid=rs(1)
		push_sql=rs(2)
	end if
	rs.close
	set rs=nothing
	
	if push_id<>0 then
		conn.execute("delete from push where push_id="&push_id)
		set rs=conn.execute("select web_name,web_db from web where web_id="&push_webid)
		if not rs.eof then
			web_name=rs(0)
			web_db=rs(1)
		else
			wscript.echo "错误的任务请求,"&pushWeb_flush_Time/1000&"秒后再检查..."
		end if
		rs.close
		set rs=nothing
		conn.close
		
		if web_db<>"" and push_sql<>"" then
			wscript.echo "找到一个任务[站点名="&web_name&"],导入中..."
			
			conn.open web_db
			push_sql=replace(push_sql,vbCrlf,";")
			push_Arr=split(push_sql,";")
			for each push_str in push_Arr
				if trim(push_str)<>"" then conn.execute(trim(push_str))
			next
			
			conn.close
			set conn=nothing
			
			wscript.echo "导入完毕,"&pushWeb_flush_Time/1000&"秒后检查是否有新任务..."
		end if
	else
		wscript.sleep pushWeb_flush_Time
	end if
	wscript.echo string(60,"=")
	call pushWeb()
end function


wscript.echo string(60,"=")
wscript.echo "pushWeb version:beta 0.1"
wscript.echo "pushWeb Design:苗启源"
wscript.echo "pushWeb Home:miaoqiyuan.cn"
wscript.echo string(60,"=")
wscript.echo "pushWeb Starting..."
wscript.echo string(60,"=")
call pushWeb()

数据库设置:

push
push_id push_webid push_sql
1 1 insert into t(t,c)values(‘push_web_test’,’push_web_test’);insert into t(t,c)values(‘push_web_test’,’push_web_test’);
2 1 insert into t(t,c)values(‘push_web_test’,’push_web_test’)
insert into t(t,c)values(‘push_web_test’,’push_web_test’)
web
web_id web_name web_db
1 测试站点 provider=microsoft.jet.oledb.4.0;data source=D:\WebDesign\Products\pushWeb\test.mdb

PushWeb 采集站点信息发布的最佳方案》上有1条评论

  1. Pingback引用通告: 苗启源的部落格pushWeb 小更新 -

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.