 |
|
ShangKai
V2EX member #30343, joined on 2012-12-06 12:35:17 +08:00
|
ShangKai's recent replies
早上起来一看这么多回复,受宠若惊,谢谢大家的回复!
总结一下:
1 ,原来 php 可以写 Socketserver 啊,很奇怪,那为什么 php 一般都和 Apache 或者 Nginx 配合呢?为什么不自己监听 80 端口呢?导致我这个 php 新手误以为 php 干不了这事呢,哈哈哈😄。
2 ,看来还是方案 1 比较好啊,把爬回来的 item json 化然后 post 请求到 laravel 的 web service 里,这个优点是爬虫可以和 web service 分开在不同的 Server ,不同地区,而且可以同时开多个爬虫,这可能就是所谓的解耦吧。
3 , json 化后保存文件到本地某个目录,然后 laravle 利用 cron 定期去这个目录读取,保存到 DB ,最后删除这些 json 文件,这个方案也不错,缺点是爬取和保存到 DB 不够实时,而且最好在一个 server 上。
感谢回复,我是倾向于不在 Python 里做数据持久化的,标题有点不准确。因为在保存到数据库里之前有一些业务逻辑处理,想和最终展示这些数据的 laravel 项目放在一起便于维护。
我好像明白了,(其实 php 我也是新手😄),什么进程间通信, php 在没人访问它的时候就是一堆文本文件放在那里,没有进程处于监听状态,所以 php 才需要和 web 服务器配合, web 服务器通过 fastcgi 执行 php 脚本。所以想要唤醒 php ,有且仅有两个地方, http request 通过 web 服务器的 fastcgi 访问,或者直接通过命令行执行 php 命令,比如 php artisan 。对 php 来说进程间通信只能它去主动问别的进程要数据,比如 php 的 Resis session 方案。你们没见过用 php 写 sockt 监听一个端口在那吧?
有人升级吗?我刚才从3升级到4了,可是邮件里没有收到serial number,钱已经花了,只给了我一个订单号。有人升级过吗?