 | | 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,钱已经花了,只给了我一个订单号。有人升级过吗?