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

2017-09-18 09:06:30 +08:00
 qq7588245

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

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

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

https://www.v2ex.com/t/391506

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

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

© 2021 V2EX