|
@@ -2,6 +2,7 @@ package com.adx.tencent.httpapi;
|
|
|
|
|
|
|
|
import com.adx.tencent.baidu.ConversionClient;
|
|
import com.adx.tencent.baidu.ConversionClient;
|
|
|
import com.adx.tencent.baidu.model.ConversionQuery;
|
|
import com.adx.tencent.baidu.model.ConversionQuery;
|
|
|
|
|
+import com.adx.tencent.conversionsync.ConversionBackfillJobService;
|
|
|
import com.adx.tencent.conversionsync.ConversionSyncRunner;
|
|
import com.adx.tencent.conversionsync.ConversionSyncRunner;
|
|
|
import com.adx.tencent.conversionsync.ConversionSyncService;
|
|
import com.adx.tencent.conversionsync.ConversionSyncService;
|
|
|
import com.adx.tencent.conversionsync.RetryService;
|
|
import com.adx.tencent.conversionsync.RetryService;
|
|
@@ -22,15 +23,18 @@ public class AdminController {
|
|
|
|
|
|
|
|
private final ConversionClient conversionClient;
|
|
private final ConversionClient conversionClient;
|
|
|
private final ConversionSyncRunner conversionSyncRunner;
|
|
private final ConversionSyncRunner conversionSyncRunner;
|
|
|
|
|
+ private final ConversionBackfillJobService backfillJobService;
|
|
|
private final ConversionSyncService conversionSyncer;
|
|
private final ConversionSyncService conversionSyncer;
|
|
|
private final RetryService retryService;
|
|
private final RetryService retryService;
|
|
|
|
|
|
|
|
public AdminController(ConversionClient conversionClient,
|
|
public AdminController(ConversionClient conversionClient,
|
|
|
@Nullable ConversionSyncRunner conversionSyncRunner,
|
|
@Nullable ConversionSyncRunner conversionSyncRunner,
|
|
|
|
|
+ @Nullable ConversionBackfillJobService backfillJobService,
|
|
|
@Nullable ConversionSyncService conversionSyncer,
|
|
@Nullable ConversionSyncService conversionSyncer,
|
|
|
@Nullable RetryService retryService) {
|
|
@Nullable RetryService retryService) {
|
|
|
this.conversionClient = conversionClient;
|
|
this.conversionClient = conversionClient;
|
|
|
this.conversionSyncRunner = conversionSyncRunner;
|
|
this.conversionSyncRunner = conversionSyncRunner;
|
|
|
|
|
+ this.backfillJobService = backfillJobService;
|
|
|
this.conversionSyncer = conversionSyncer;
|
|
this.conversionSyncer = conversionSyncer;
|
|
|
this.retryService = retryService;
|
|
this.retryService = retryService;
|
|
|
}
|
|
}
|
|
@@ -51,12 +55,25 @@ public class AdminController {
|
|
|
|
|
|
|
|
@PostMapping("/conversions/backfill")
|
|
@PostMapping("/conversions/backfill")
|
|
|
public Object backfillConversions(@RequestBody(required = false) Map<String, Object> body) throws Exception {
|
|
public Object backfillConversions(@RequestBody(required = false) Map<String, Object> body) throws Exception {
|
|
|
- if (conversionSyncRunner == null) {
|
|
|
|
|
|
|
+ if (backfillJobService == null) {
|
|
|
throw new ResponseStatusException(HttpStatus.SERVICE_UNAVAILABLE,
|
|
throw new ResponseStatusException(HttpStatus.SERVICE_UNAVAILABLE,
|
|
|
- "conversion sync runner is not configured");
|
|
|
|
|
|
|
+ "conversion backfill job service is not configured");
|
|
|
}
|
|
}
|
|
|
List<Integer> offsets = parseOffsets(body);
|
|
List<Integer> offsets = parseOffsets(body);
|
|
|
- return conversionSyncRunner.runForOffsets(offsets);
|
|
|
|
|
|
|
+ return backfillJobService.submit(offsets);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @GetMapping("/conversions/backfill/{jobId}")
|
|
|
|
|
+ public Object getBackfillJob(@PathVariable String jobId) {
|
|
|
|
|
+ if (backfillJobService == null) {
|
|
|
|
|
+ throw new ResponseStatusException(HttpStatus.SERVICE_UNAVAILABLE,
|
|
|
|
|
+ "conversion backfill job service is not configured");
|
|
|
|
|
+ }
|
|
|
|
|
+ ConversionBackfillJobService.JobState job = backfillJobService.getJob(jobId);
|
|
|
|
|
+ if (job == null) {
|
|
|
|
|
+ throw new ResponseStatusException(HttpStatus.NOT_FOUND, "job not found");
|
|
|
|
|
+ }
|
|
|
|
|
+ return job;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@PostMapping("/callbacks/retry")
|
|
@PostMapping("/callbacks/retry")
|