翻译修改为队列

This commit is contained in:
2025-05-28 09:30:01 +08:00
parent 86b7b0c608
commit d809b9f666
6 changed files with 556 additions and 148 deletions
+17 -1
View File
@@ -11,4 +11,20 @@ WEBMAN_COUNT = 2
OSS_ACCESS_KEY_ID=LTAI5tAGiH7bkVkmrniXnfkA
OSS_ACCESS_KEY_SECRET=nqklJBft6t3S0A4ZvxF4ci9ni91kmm
OSS_BUCKET=vehicle-album
OSS_ENDPOINT=https://oss-cn-beijing.aliyuncs.com
OSS_ENDPOINT=https://oss-cn-beijing.aliyuncs.com
# redis
REDIS_HOST = 1Panel-redis-1jWE
REDIS_PASSWORD = redis_h6xWCT
REDIS_PORT = 6379
REDIS_DATABASE = 0
# redis-queue
REDIS_QUEUE_HOST = redis://1Panel-redis-q527:6379
REDIS_QUEUE_AUTH = redis_d2tGfw
REDIS_QUEUE_DB = 15
REDIS_QUEUE_PREFIX =
REDIS_QUEUE_MAX_ATTEMPTS = 5
REDIS_QUEUE_RETRY_SECONDS = 5
REDIS_QUEUE_PROCESS_COUNT = 2
REDIS_QUEUE_CONSUMER_DIR = /mzl/modules/translation/queue
+12
View File
@@ -3,6 +3,8 @@
namespace app\service;
use app\util\Xunfei;
use support\Log;
use Webman\RedisQueue\Redis;
class TranslatorService
{
@@ -39,4 +41,14 @@ class TranslatorService
}
return $location;
}
public function queue($field,$sourceLang,$type,$id) {
// 队列名
$queue = 'translator';
// 数据,可以直接传数组,无需序列化
$data = ['entityType' => $type, 'sourceFields' => $field, 'sourceLang' => $sourceLang, 'locale' => 'hello', 'id' => $id];
// 投递消息
Redis::send($queue, $data);
return true;
}
}
+4 -1
View File
@@ -35,7 +35,10 @@
"shopwwi/filesystem-oss": "^1.0",
"webman/console": "^2.1",
"webman/cache": "^2.1",
"workerman/crontab": "^1.0"
"workerman/crontab": "^1.0",
"webman/redis": "dev-main",
"illuminate/events": "^12.14",
"webman/redis-queue": "^1.3"
},
"suggest": {
"ext-event": "For better performance. "
Generated
+519 -96
View File
File diff suppressed because it is too large Load Diff
@@ -191,32 +191,12 @@ class LocationController extends Crud
];
//删除已保存的模型
unset($translationModels[$lang]);
unset($languages[$lang]);
// unset($languages[$lang]);
// 创建翻译服务实例
$translatorService = new \app\service\TranslatorService();
foreach ($languages as $language) {
$translationModel = $translationModels[$language];
if(!empty($data['id'])){
$translation = $translationModel::find($data['id']);
}else{
$translation = new $translationModel();
}
// 复制主表数据
$translation->fill($data);
$translation->id = $location->id;
// 使用翻译服务处理需要翻译的字段
$translatedData = $translatorService->location($data, $language,$lang);
log::info('$lang',[$language,$lang,$translatedData]);
// 更新翻译后的字段
$translation->name = $translatedData['name'] ?? $data['name'];
$translation->save();
}
$translatorService->queue($data,$languages[$lang],'location',$data['id']?:null);
}
/**
@@ -276,38 +276,12 @@ class VehicleController extends Crud
];
//删除已保存的模型
unset($translationModels[$lang]);
unset($languages[$lang]);
// unset($languages[$lang]);
// 创建翻译服务实例
$translatorService = new \app\service\TranslatorService();
foreach ($languages as $language) {
$translationModel = $translationModels[$language];
if(!empty($data['id'])){
// $vehicle = Vehicle::find($data['id']);
$translation = $translationModel::find($data['id']);
}else{
$translation = new $translationModel();
}
// 复制主表数据
$translation->fill($data);
$translation->id = $vehicle->id;
// 使用翻译服务处理需要翻译的字段
log::info('lang:',[$language,$lang]);
$translatedData = $translatorService->vehicle($data, $language,$lang);
// 更新翻译后的字段
$translation->brand = $translatedData['brand'] ?? $data['brand'];
$translation->model = $translatedData['model'] ?? $data['model'];
// $translation->status = $translatedData['status'] ?? $data['status'];
$translation->purchase_location = $translatedData['purchase_location'] ?? $data['purchase_location'];
$translation->procedure_location = $translatedData['procedure_location'] ?? $data['procedure_location'];
// $translation->fbo_destination = $translatedData['fbo_destination'] ?? $data['fbo_destination'];
$translation->save();
}
$translatorService->queue($data,$languages[$lang],'vehicle',$data['id']?:null);
}