问大家个go多线程的问题,我有一个php的脚本,如果拿go重写,速度会变快么
是这样的,我现在有一批数据需要请求接口去校验结果,顺便把结果保存,用php脚本就是先取库,获取待校验数据,然后循环去请求接口去取结果,因为接口比较慢,甚至有些需要反复重试,平均一组数据要10s左右。
然后要处理的数据有几万组,目前的脚本就是按id一个个去执行。速度很慢,想着有没有办法快一些处理,比如go 的 channel ,之前写过一点点go,现在忘的差不多了,如果用go该如何处理,怎么解决不同线程会读同组数据问题
从你的描述上,可以快一些,但是有限。因为你的校验接口本身慢。多个跑无非并发调用,如果那边承受不了的话,也不一定能提升多少。数组重复问题,你可以用队列。如果是go的话,用channel 或 切片 + lock 维护就好,php的话借助redis,多开几个脚本也可以