我有一个PHP文件需要扫描其他网站的数据,在多用户访问时怎样保证它只去扫描一次?

时间:2022-08-29 11:35:08
我有一个PHP文件需要扫描其他网站的提取数据。

如果没有人访问网站时,它不会工作,数据没有更新。

如果有人访问时,它就应该去扫描别人的网页,将结果保存到自己的数据库中,并将结果发给访问者。

但是如果有多人访问时,它也应该只去扫描一次就足够,其他人共享自己数据库就行。

有什么办法做这种控制呢?

10 个解决方案

#1


数据库里记一个时间戳

#2


引用楼主 vnking 的帖子:
我有一个PHP文件需要扫描其他网站的提取数据。

如果没有人访问网站时,它不会工作,数据没有更新。

如果有人访问时,它就应该去扫描别人的网页,将结果保存到自己的数据库中,并将结果发给访问者。

但是如果有多人访问时,它也应该只去扫描一次就足够,其他人共享自己数据库就行。

有什么办法做这种控制呢?


隔1个时间更新一次,每次写个时间截,每次访问判断一下。

#3


是扫描股票行情的,隔3秒钟就要跑去扫描了。

#4


增加两个字段 一个是网页地址的字段url  另外一个是是否被访问过的字段
url  mark
当url=‘http://aaa.com/a.php?id=1’ 时候mark=1的话说明已经访问过了,为0时说明还没访问过
也可以增加一个访问时间的字段,以便多长时间再次访问

#5


数据先存到自己的数据库

另外建一个表
目标地址,更新时间,间隔

有请求时,检查(更新时间+间隔)决定是否需要更新数据

#6


这种情况还是把更新操作放到后台程序里面做吧。

#7


引用 6 楼 bookmoth 的回复:
这种情况还是把更新操作放到后台程序里面做吧。


虚拟主机,无法控制后台!

#8


引用 7 楼 vnking 的回复:
引用 6 楼 bookmoth 的回复:
这种情况还是把更新操作放到后台程序里面做吧。


虚拟主机,无法控制后台!

呃……好吧,当我没说

#9


引用 8 楼 bookmoth 的回复:
引用 7 楼 vnking 的回复:
引用 6 楼 bookmoth 的回复: 
这种情况还是把更新操作放到后台程序里面做吧。 


虚拟主机,无法控制后台! 
 
呃……好吧,当我没说


只能说现在的技术服务突飞猛进,即使是年服务费数百元的虚拟主机也能做出不错的股票行情查询,记得十年前,深圳证券交易所的一个附属公司,要搞个网站,服务器购买SUN公司的,总共加起来数百万投入,现在回头看,真是沧海桑田。

我搜索的股票行情是越南河内证券交易所的,现在100多个股票,行情刷新不是很快,数据量不是很大,原因当然也跟市场大小有关,每天只交易两个半小时,当地时间早上8:30~11:00,北京时间9:30~12:00,在这段时间扫描数据就可以了,反正一个虚拟主机一个access表就能搞定。

#10


伪代码,应该很容易明白吧~~~

if(比较当前时间戳与已有数据时间戳,过期时) {
    获取新数据;
    更新当前时间戳到数据时间戳;

输出当前数据;

#1


数据库里记一个时间戳

#2


引用楼主 vnking 的帖子:
我有一个PHP文件需要扫描其他网站的提取数据。

如果没有人访问网站时,它不会工作,数据没有更新。

如果有人访问时,它就应该去扫描别人的网页,将结果保存到自己的数据库中,并将结果发给访问者。

但是如果有多人访问时,它也应该只去扫描一次就足够,其他人共享自己数据库就行。

有什么办法做这种控制呢?


隔1个时间更新一次,每次写个时间截,每次访问判断一下。

#3


是扫描股票行情的,隔3秒钟就要跑去扫描了。

#4


增加两个字段 一个是网页地址的字段url  另外一个是是否被访问过的字段
url  mark
当url=‘http://aaa.com/a.php?id=1’ 时候mark=1的话说明已经访问过了,为0时说明还没访问过
也可以增加一个访问时间的字段,以便多长时间再次访问

#5


数据先存到自己的数据库

另外建一个表
目标地址,更新时间,间隔

有请求时,检查(更新时间+间隔)决定是否需要更新数据

#6


这种情况还是把更新操作放到后台程序里面做吧。

#7


引用 6 楼 bookmoth 的回复:
这种情况还是把更新操作放到后台程序里面做吧。


虚拟主机,无法控制后台!

#8


引用 7 楼 vnking 的回复:
引用 6 楼 bookmoth 的回复:
这种情况还是把更新操作放到后台程序里面做吧。


虚拟主机,无法控制后台!

呃……好吧,当我没说

#9


引用 8 楼 bookmoth 的回复:
引用 7 楼 vnking 的回复:
引用 6 楼 bookmoth 的回复: 
这种情况还是把更新操作放到后台程序里面做吧。 


虚拟主机,无法控制后台! 
 
呃……好吧,当我没说


只能说现在的技术服务突飞猛进,即使是年服务费数百元的虚拟主机也能做出不错的股票行情查询,记得十年前,深圳证券交易所的一个附属公司,要搞个网站,服务器购买SUN公司的,总共加起来数百万投入,现在回头看,真是沧海桑田。

我搜索的股票行情是越南河内证券交易所的,现在100多个股票,行情刷新不是很快,数据量不是很大,原因当然也跟市场大小有关,每天只交易两个半小时,当地时间早上8:30~11:00,北京时间9:30~12:00,在这段时间扫描数据就可以了,反正一个虚拟主机一个access表就能搞定。

#10


伪代码,应该很容易明白吧~~~

if(比较当前时间戳与已有数据时间戳,过期时) {
    获取新数据;
    更新当前时间戳到数据时间戳;

输出当前数据;