谷歌翻译API POST 11秒延迟



编辑:11.5秒,28条消息

单个请求可以正常工作。下面的代码需要11秒,使用API中的邮递员设置路线进行访问。

我做错什么了吗?我觉得即使没有缓存也不应该花11秒。

$xs = ChatMessage::where('chat_room_id','=',$roomId)
->with('user')
->orderBy('created_at','DESC')
->get();

foreach($xs as $r){

$translate = new TranslateClient([
'key' => 'xxxxxxxxxxxxxxxxxxxxxxx'
]);

$result = $translate->translate($r->message_english, [
'target' =>'es',
'source' => 'en',
]);

$r->message = $result['text'];
}
return $xs;

我认为只需将客户端移出for每个循环,就可以轻松地加快进程。每次迭代都要创建一个客户端。这不是最优的。您应该能够在每次翻译调用时重用客户端。这样可以加快你的翻译过程。您可以在github官方客户端项目中找到这种用法的示例

下面是一个伪代码示例:

client = new TranslateClient()
foreach(message in messages)
result = client.translate(message)
print(result)

另外,你的翻译文本有多长?您应该将要翻译的整个文本传递到单个调用中(只要支持的库允许(,这样您也可以减少对API的调用。

如果您仍然有问题,您可以按照评论中提到的方式并行使用多个请求。

一些有用的链接:

  • PHP文档概述
  • 翻译客户端

最新更新