PHP 与 go 交互

226 天前
 zzzkkk

对于生产环境不允许 exec 函数调用外部程序的情况?

以前知道有 goridge 这种东西 需要 go 启动服务并保持常在

php 再用 http get/post 方式调用 go 服务 这样不是很烦?

比如要用 go 爬 1 万条数据 每次都传 1 万条 这样调用的话无法显示进度 比如每隔一秒向浏览器显示爬了多少条数据

1679 次点击
所在节点    PHP
18 条回复
Rache1
226 天前
FFI
maocat
226 天前
加中间件,消息队列
codehz
226 天前
每次开进程损耗更大吧()
8355
226 天前
消息队列是主流方案,方便快速扩容,无法独立部署的话可以用 redis stream 5.0 就可以用了。
性能很快,指令都是 o1 ,消息量大的话不如 kafka 或者 mq ,每天百万级没大问题,前期有量可以切独立 redis 便宜的狠。
zzzkkk
226 天前
@codehz

对于很少用户的系统 根本不用关心 损耗

而是用户体验第一

这个进度条是多么重要啊
Gota
226 天前
可以放个 Redis 在中间,共享状态,消息队列,广播事件 Redis 都支持,很适合用在爬虫这样的异步任务平台。
Nazz
226 天前
使用 sidecar 部署, 通过 http 通信
QlanQ
226 天前
你的这种方式,进度条准吗?
进度条是在浏览器显示的与,go 和 php 的交互方式没有什么关系吧
skiy
226 天前
走 RPC ?或者走 MQ ( MQTT )。进度条不了解……这东西不要求精准啊。很多熟悉让你进度到 90%,就在那里卡你好久……
awalkingman
226 天前
进度条是锦上添花,最核心的是把任务完成了,进度条显示一个大概就好了。
通信的话,找个中间件解耦一下是最方便的。
zzzkkk
226 天前
进度条就是页面用 ajax 请求一个文本文件

server 端 go 每隔一秒去更新这个文件 爬了多少条

还有另一个文本文件 写了总数

这进度是精准的

就几个用户的系统 同一时间只有一个人执行爬虫 搞什么中间件 消息队列
zzzkkk
226 天前
还好现在 server 都是我控制

想起刚从业时 往图片写文字 gd 扩展用得焦头烂额 都是因为自己没服务器权限

要是自己能管服务器 用 imagick 扩展一下子就解决了
Gota
226 天前
如果是临时用用的项目当然无所谓,正经项目里还是不建议用本地文件存状态。
devopsdogdog
226 天前
@zzzkkk 就几个用户的系统 同一时间只有一个人执行爬虫 搞什么中间件 消息队列

你自己都说了,随便输出个日志到服务器能看就行了,是我最多做个 转圈圈 ,知道是执行还是执行完就行了。
sunmoon1983
225 天前
grpc ?
dif
225 天前
跨语言目前我用的是 grpc ,java <> python
zzzkkk
225 天前
java <> python 用 grpc 交互?
guoguoyu
192 天前
go -> redis <- php-workerman -> 进度条 搞定

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

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

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

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

© 2021 V2EX