task-212(部分): 04 Handler SPI 实现迁回各业务模块(依赖反转大头)——13 个 *ResultFileJobHandler 从 modules/task/service 迁到各自模块 service

- TaskFileJobConfig 与相关测试 import 同步到新模块包;MappingSnapshot 源码路径按模块映射
- task 模块对业务 import 由 16+ 文件降到 3(TaskHeartbeatService/TaskResultFileJobWorker/ModuleHistoryCleanupService 尚需心跳/worker/清理 SPI 化)
- 全量回归 2308 测试 0 失败
This commit is contained in:
2026-09-05 10:11:53 +08:00
parent d4b4e1e165
commit 01e8c608e7
39 changed files with 175 additions and 14 deletions
@@ -12,22 +12,22 @@ import com.nanri.aiimage.modules.queryasin.service.QueryAsinTaskService;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlTaskService;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchTaskService;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinTaskService;
import com.nanri.aiimage.modules.task.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.modules.brand.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.collectdata.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.ResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.ResultFileJobHandlerRegistry;
import com.nanri.aiimage.modules.task.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.task.service.TaskResultPayloadService;
import com.nanri.aiimage.modules.task.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.withdraw.service.WithdrawTaskService;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.beans.factory.ObjectProvider;
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentTaskService;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.brand.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.brand.service.BrandTaskService;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.collectdata.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.collectdata.service.CollectDataService;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandRunService;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteTaskService;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackTaskService;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskTaskService;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishTaskService;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinTaskService;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
@@ -1,4 +1,17 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.collectdata.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.brand.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentTaskService;
import com.nanri.aiimage.modules.brand.service.BrandTaskService;
@@ -25,6 +38,7 @@ import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -178,8 +192,18 @@ class ResultFileJobHandlerMappingSnapshotTest {
}
private static String handlerSource(String simpleName) {
// 04 Handler SPI 实现已迁到各业务模块 service 包(task 模块只留接口/注册表)
String prefix = simpleName.replace("ResultFileJobHandler", "");
String module = Map.ofEntries(
Map.entry("AppearancePatent", "appearancepatent"), Map.entry("Brand", "brand"),
Map.entry("CollectData", "collectdata"), Map.entry("DeleteBrand", "deletebrand"),
Map.entry("PatrolDelete", "patroldelete"), Map.entry("PriceTrack", "pricetrack"),
Map.entry("ProductRisk", "productrisk"), Map.entry("Publish", "publish"),
Map.entry("QueryAsin", "queryasin"), Map.entry("ShopDataCrawl", "shopdatacrawl"),
Map.entry("ShopMatch", "shopmatch"), Map.entry("SimilarAsin", "similarasin"),
Map.entry("Withdraw", "withdraw")).get(prefix);
Path source = Paths.get("src", "main", "java", "com", "nanri", "aiimage", "modules",
"task", "service", simpleName + ".java");
module == null ? "task" : module, "service", simpleName + ".java");
try {
return new String(Files.readAllBytes(source), StandardCharsets.UTF_8);
} catch (IOException e) {
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlTaskService;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchTaskService;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinTaskService;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
@@ -1,4 +1,17 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.collectdata.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.brand.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.config.InstanceMetadata;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentTaskService;
@@ -1,4 +1,17 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.collectdata.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.brand.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.config.InstanceMetadata;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentTaskService;
@@ -1,4 +1,17 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.collectdata.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.brand.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.common.exception.BusinessException;
import com.nanri.aiimage.config.InstanceMetadata;
@@ -1,4 +1,17 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.collectdata.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.brand.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.config.InstanceMetadata;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentTaskService;
@@ -1,4 +1,17 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.collectdata.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.brand.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.config.InstanceMetadata;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentTaskService;
@@ -1,4 +1,17 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.collectdata.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.brand.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.common.exception.BusinessException;
import com.nanri.aiimage.config.InstanceMetadata;
@@ -1,4 +1,17 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.collectdata.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.brand.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.common.exception.TaskOwnerMismatchException;
import com.nanri.aiimage.config.InstanceMetadata;
@@ -1,4 +1,17 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.collectdata.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.brand.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.config.InstanceMetadata;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentTaskService;
@@ -1,4 +1,7 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.config.InstanceMetadata;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentTaskService;
@@ -1,4 +1,17 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.shopmatch.service.ShopMatchResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.queryasin.service.QueryAsinResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.modules.productrisk.service.ProductRiskResultFileJobHandler;
import com.nanri.aiimage.modules.pricetrack.service.PriceTrackResultFileJobHandler;
import com.nanri.aiimage.modules.patroldelete.service.PatrolDeleteResultFileJobHandler;
import com.nanri.aiimage.modules.deletebrand.service.DeleteBrandResultFileJobHandler;
import com.nanri.aiimage.modules.collectdata.service.CollectDataResultFileJobHandler;
import com.nanri.aiimage.modules.brand.service.BrandResultFileJobHandler;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentResultFileJobHandler;
import com.nanri.aiimage.config.InstanceMetadata;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentTaskService;
@@ -1,4 +1,8 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.similarasin.service.SimilarAsinResultFileJobHandler;
import com.nanri.aiimage.modules.shopdatacrawl.service.ShopDataCrawlResultFileJobHandler;
import com.nanri.aiimage.modules.publish.service.PublishResultFileJobHandler;
import com.nanri.aiimage.config.InstanceMetadata;
import com.nanri.aiimage.modules.appearancepatent.service.AppearancePatentTaskService;
@@ -1,4 +1,5 @@
package com.nanri.aiimage.modules.task.service;
import com.nanri.aiimage.modules.withdraw.service.WithdrawResultFileJobHandler;
import com.nanri.aiimage.modules.task.model.entity.TaskFileJobEntity;
import com.nanri.aiimage.modules.withdraw.service.WithdrawTaskService;