18 Dec, 2025
1 commit
-
2. translate_multi 还需要提供一种调用方法,异步的,但是 可以等待结果的。 3. 如果detected_lang不是en也不是zh,这时候, 我们调用translate_multi 是需要等待结果返回的(因为是zh 或者 en 都有一个索引字段可以查,因此 本次可以不用结果,直接去走搜索,但是如果两者都不是,只能等待翻译结果。) 4. parse函数 这里可能发起一个异步的调用,下面的encode也要做成异步的,这样 encode和翻译两个异步任务的时间可以重叠,需要等待所有结果都返回。 更改 1. 去除 get_translation_needs 函数,逻辑内联到 parse 函数 在 parse 函数中(第230-234行)直接实现了 get_translation_needs 的逻辑 2. 添加 translate_multi_async 方法,支持异步等待结果 在 translator.py 中添加了 translate_multi_async 方法(第412-459行) 该方法返回字典,值为翻译字符串(缓存命中)或 Future 对象(需要等待) 3. 根据 detected_lang 决定是否需要等待翻译结果 如果 detected_lang 不是 'en' 也不是 'zh',使用 translate_multi_async 并等待结果(第245-261行) 如果是 'en' 或 'zh',使用 translate_multi 的异步模式,不等待结果(第262-273行) 4. 将 encode 和翻译改为异步并行执行 encode 使用 ThreadPoolExecutor 异步执行(第315-330行) 翻译和编码任务并行执行,使用 as_completed 等待所有结果(第332-375行)