求组! PHP 采集的时候,没有响应了,怎么才能不影响其他操作?

2017 年 9 月 18 日
 qq7588245

没响应的时候还可以做其他操作,是不是要用到非阻塞,还是什么?有没有解决方案?

3260 次点击
所在节点    PHP
17 条回复
Immortal
2017 年 9 月 18 日
超时时间我的哥
qq7588245
2017 年 9 月 18 日
Moker
2017 年 9 月 18 日
你可以去看下 Guzzle 的实现 then 方法
Immortal
2017 年 9 月 18 日
@qq7588245 没响应不是指采集的某个页面没返回导致整个程序阻塞么?
qq7588245
2017 年 9 月 18 日
@Immortal 不是,就是正在采集呢 php 一直在运行 ,这个时候就不能访问其他页面了。
zhengwenk
2017 年 9 月 18 日
不能访问其他页面。你是用什么模式采集,web?
sucaihuo
2017 年 9 月 18 日
不太合理吧,像我用火车头采集,完全不影响
Immortal
2017 年 9 月 18 日
@qq7588245
...php 访问其他页面?有点聊不下去了
你是并发采集还是同步采集?
同步的话肯定不能做其他操作了啊- - 这个函数还没执行完毕
做成异步就好了
vtwoextb
2017 年 9 月 18 日
采集的对象没有反应,有可能你的被禁止可以用这种策略: https://github.com/hizdm/dynamic_ip 如果是脚本超时了你可以设置一下时间,或者加一些判断
qq7588245
2017 年 9 月 18 日
@zhengwenk 对 用 php 直接访问 url
wekw
2017 年 9 月 18 日
可以利用 web server 天生的异步能力,用触发 http 请求的形式多线程采集。
qq7588245
2017 年 9 月 18 日
@wekw 如果必须要同步呢?
qq7588245
2017 年 9 月 18 日
@Immortal 如果必须要同步呢?
sujin190
2017 年 9 月 18 日
多开几个进程就是了啊
dlllcs
2017 年 9 月 18 日
@qq7588245 我大概明白你的意思了。。。我觉得是 Session 锁的问题,你尝试在运行采集线程的时间开一个新的浏览器去访问其他 url,应该是没问题的,同一个 session 在 php 默认配置下只能同时访问一个网页
dlllcs
2017 年 9 月 18 日
@qq7588245 还有一种可能性是你用的是 php 自带的 php -S 服务器。。。这个不在讨论范围
qq7588245
2017 年 9 月 20 日
@dlllcs 对 应该就是这个锁的问题 怎么解决好呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/391506

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX