Commit 2bbf6387 by huluobin

update

parent 7be08f88
...@@ -65,5 +65,4 @@ class AmazonAdDownloadReportJobTest { ...@@ -65,5 +65,4 @@ class AmazonAdDownloadReportJobTest {
} }
} }
...@@ -20,8 +20,6 @@ public class AmazonAdGenerateReportIdJobTest { ...@@ -20,8 +20,6 @@ public class AmazonAdGenerateReportIdJobTest {
public void executeJob() { public void executeJob() {
AmazonAdGenerateReportIdJob amazonAdGenerateReportIdJob = new AmazonAdGenerateReportIdJob(); AmazonAdGenerateReportIdJob amazonAdGenerateReportIdJob = new AmazonAdGenerateReportIdJob();
while (true) {
amazonAdGenerateReportIdJob.execute(new ShardingContext(new ShardingContexts("x", "base-amazon-ad-product-generate", 1, null, new HashMap<>()), 0)); amazonAdGenerateReportIdJob.execute(new ShardingContext(new ShardingContexts("x", "base-amazon-ad-product-generate", 1, null, new HashMap<>()), 0));
} }
}
} }
...@@ -10,7 +10,6 @@ import com.bailuntec.domain.example.DcBaseFinanceEbayExample; ...@@ -10,7 +10,6 @@ import com.bailuntec.domain.example.DcBaseFinanceEbayExample;
import com.bailuntec.mapper.DcBaseCompanyAccountMapper; import com.bailuntec.mapper.DcBaseCompanyAccountMapper;
import com.bailuntec.mapper.DcBaseFinanceEbayMapper; import com.bailuntec.mapper.DcBaseFinanceEbayMapper;
import com.bailuntec.mapper.JobAccountLogMapper; import com.bailuntec.mapper.JobAccountLogMapper;
import com.bailuntec.mapper.JobPointLogMapper;
import com.bailuntec.support.CallBailunSystem; import com.bailuntec.support.CallBailunSystem;
import com.bailuntec.support.PointJob; import com.bailuntec.support.PointJob;
import com.bailuntec.utils.SessionUtil; import com.bailuntec.utils.SessionUtil;
...@@ -43,7 +42,6 @@ public class EbayFinanceAdSyncJob extends PointJob { ...@@ -43,7 +42,6 @@ public class EbayFinanceAdSyncJob extends PointJob {
try { try {
JobAccountLogMapper jobAccountLogMapper = SessionUtil.getSession().getMapper(JobAccountLogMapper.class); JobAccountLogMapper jobAccountLogMapper = SessionUtil.getSession().getMapper(JobAccountLogMapper.class);
JobPointLogMapper jobPointLogMapper = SessionUtil.getSession().getMapper(JobPointLogMapper.class);
DcBaseFinanceEbayMapper dcBaseFinanceEbayMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayMapper.class); DcBaseFinanceEbayMapper dcBaseFinanceEbayMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayMapper.class);
//拿到账号集合 //拿到账号集合
...@@ -55,28 +53,25 @@ public class EbayFinanceAdSyncJob extends PointJob { ...@@ -55,28 +53,25 @@ public class EbayFinanceAdSyncJob extends PointJob {
if (startTime.toLocalDate().compareTo(LocalDate.now()) < 0) { if (startTime.toLocalDate().compareTo(LocalDate.now()) < 0) {
for (JobAccountLog jobAccountLog : listByPage) { listByPage.parallelStream().forEach(jobAccountLog -> {
try {
//先删除再更新 //先删除再更新
dcBaseFinanceEbayMapper.deleteByExample(DcBaseFinanceEbayExample.newAndCreateCriteria() dcBaseFinanceEbayMapper.deleteByExample(DcBaseFinanceEbayExample.newAndCreateCriteria()
.andBjDateBetween(startTime, endTime) .andBjDateBetween(startTime, endTime)
.andAccountIdEqualTo(jobAccountLog.getAccountId()) .andAccountIdEqualTo(jobAccountLog.getAccountId())
.example()); .example());
}catch (Exception ex){
}
jobAccountLog.setStartTime(startTime.plusHours(15)); jobAccountLog.setStartTime(startTime.plusHours(15));
jobAccountLog.setEndTime(endTime.plusHours(15)); jobAccountLog.setEndTime(endTime.plusHours(15));
callSaasApi(jobAccountLog, shardingContext); this.callSaaSApi(jobAccountLog, shardingContext);
log.info("帐号:{} 日期:{} ebay广告费用同步完成", jobAccountLog.getAccountId(), startTime); log.info("帐号:{} 日期:{} ebay广告费用同步完成", jobAccountLog.getAccountId(), startTime);
} });
jobPointLog.setStartTime(startTime.plusDays(1)); jobPointLog.setStartTime(startTime.plusDays(1));
jobPointLog.setEndTime(endTime.plusDays(1)); jobPointLog.setEndTime(endTime.plusDays(1));
jobPointLog.setGmtModified(LocalDateTime.now());
} }
} catch (Exception e) { } catch (Exception e) {
...@@ -87,7 +82,7 @@ public class EbayFinanceAdSyncJob extends PointJob { ...@@ -87,7 +82,7 @@ public class EbayFinanceAdSyncJob extends PointJob {
} }
public void callSaasApi(JobAccountLog jobAccountLog, ShardingContext shardingContext) { public void callSaaSApi(JobAccountLog jobAccountLog, ShardingContext shardingContext) {
try { try {
DcBaseCompanyAccount dcBaseCompanyAccount = getToken(jobAccountLog); DcBaseCompanyAccount dcBaseCompanyAccount = getToken(jobAccountLog);
......
package com.bailuntec.job; //package com.bailuntec.job;
//
import com.alibaba.fastjson.JSON; //import com.alibaba.fastjson.JSON;
import com.bailuntec.domain.entity.DcBaseFinanceEbay; //import com.bailuntec.domain.entity.DcBaseFinanceEbay;
import com.bailuntec.domain.entity.JobAccountLog; //import com.bailuntec.domain.entity.JobAccountLog;
import com.bailuntec.domain.entity.JobPointLog; //import com.bailuntec.domain.entity.JobPointLog;
import com.bailuntec.domain.enumerate.CurrencyType; //import com.bailuntec.domain.enumerate.CurrencyType;
import com.bailuntec.domain.example.DcBaseCompanyAccountExample; //import com.bailuntec.domain.example.DcBaseCompanyAccountExample;
import com.bailuntec.domain.example.DcBaseFinanceEbayExample; //import com.bailuntec.domain.example.DcBaseFinanceEbayExample;
import com.bailuntec.domain.example.JobAccountLogExample; //import com.bailuntec.domain.example.JobAccountLogExample;
import com.bailuntec.domain.pojo.AccountEntries; //import com.bailuntec.domain.pojo.AccountEntries;
import com.bailuntec.domain.pojo.AccountEntry; //import com.bailuntec.domain.pojo.AccountEntry;
import com.bailuntec.domain.pojo.EbayResult; //import com.bailuntec.domain.pojo.EbayResult;
import com.bailuntec.mapper.DcBaseCompanyAccountMapper; //import com.bailuntec.mapper.DcBaseCompanyAccountMapper;
import com.bailuntec.mapper.DcBaseFinanceEbayMapper; //import com.bailuntec.mapper.DcBaseFinanceEbayMapper;
import com.bailuntec.mapper.JobAccountLogMapper; //import com.bailuntec.mapper.JobAccountLogMapper;
import com.bailuntec.support.CallBailunSystem; //import com.bailuntec.support.CallBailunSystem;
import com.bailuntec.support.PointJob; //import com.bailuntec.support.PointJob;
import com.bailuntec.utils.OkHttpUtil; //import com.bailuntec.utils.OkHttpUtil;
import com.bailuntec.utils.PropertiesUtil; //import com.bailuntec.utils.PropertiesUtil;
import com.bailuntec.utils.SessionUtil; //import com.bailuntec.utils.SessionUtil;
import com.dangdang.ddframe.job.api.ShardingContext; //import com.dangdang.ddframe.job.api.ShardingContext;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import okhttp3.*; //import okhttp3.*;
import org.apache.commons.beanutils.BeanUtils; //import org.apache.commons.beanutils.BeanUtils;
//
import java.time.LocalDateTime; //import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; //import java.time.format.DateTimeFormatter;
import java.util.HashMap; //import java.util.HashMap;
import java.util.List; //import java.util.List;
//
@Slf4j //@Slf4j
public class EbayFinanceSyncJob extends PointJob { //public class EbayFinanceSyncJob extends PointJob {
private PropertiesUtil propertiesUtil = PropertiesUtil.getInstance("const"); // private PropertiesUtil propertiesUtil = PropertiesUtil.getInstance("const");
private OkHttpClient client = OkHttpUtil.getInstance(); // private OkHttpClient client = OkHttpUtil.getInstance();
//
@Override // @Override
public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) { // public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) {
int totalPage = getCount(jobPointLog);//分片即将处理的账号总数 // int totalPage = getCount(jobPointLog);//分片即将处理的账号总数
try { // try {
JobAccountLogMapper jobAccountLogMapper = SessionUtil.getSession().getMapper(JobAccountLogMapper.class); // JobAccountLogMapper jobAccountLogMapper = SessionUtil.getSession().getMapper(JobAccountLogMapper.class);
/* // /*
* 根据不同分片 // * 根据不同分片
* 再分页去拿不同的账号执行任务 // * 再分页去拿不同的账号执行任务
*/ // */
int pageSize = totalPage % shardingContext.getShardingTotalCount() == 0 ? totalPage / shardingContext.getShardingTotalCount() : totalPage / shardingContext.getShardingTotalCount() + 1; // int pageSize = totalPage % shardingContext.getShardingTotalCount() == 0 ? totalPage / shardingContext.getShardingTotalCount() : totalPage / shardingContext.getShardingTotalCount() + 1;
//拿到账号集合 // //拿到账号集合
List<JobAccountLog> listByPage = jobAccountLogMapper.getListByPage(12, pageSize * shardingContext.getShardingItem(), pageSize); // List<JobAccountLog> listByPage = jobAccountLogMapper.getListByPage(12, pageSize * shardingContext.getShardingItem(), pageSize);
if (listByPage != null && listByPage.size() > 0) { // if (listByPage != null && listByPage.size() > 0) {
for (JobAccountLog jobAccountLog : listByPage) { // for (JobAccountLog jobAccountLog : listByPage) {
log.warn("分片: " + shardingContext.getShardingItem() + " 账号: " + jobAccountLog); // log.warn("分片: " + shardingContext.getShardingItem() + " 账号: " + jobAccountLog);
if (jobAccountLog.getId() == null) { //在任务表无记录 // if (jobAccountLog.getId() == null) { //在任务表无记录
BeanUtils.copyProperties(jobAccountLog, jobPointLog); // BeanUtils.copyProperties(jobAccountLog, jobPointLog);
jobAccountLog.setId(null); // jobAccountLog.setId(null);
} // }
callSaasApi(jobAccountLog); // callSaasApi(jobAccountLog);
if (jobAccountLog.getId() == null) { //在任务表无记录 // if (jobAccountLog.getId() == null) { //在任务表无记录
jobAccountLogMapper = SessionUtil.getSession().getMapper(JobAccountLogMapper.class); // jobAccountLogMapper = SessionUtil.getSession().getMapper(JobAccountLogMapper.class);
jobAccountLogMapper.insertSelective(jobAccountLog); // jobAccountLogMapper.insertSelective(jobAccountLog);
} else { // } else {
jobAccountLogMapper = SessionUtil.getSession().getMapper(JobAccountLogMapper.class); // jobAccountLogMapper = SessionUtil.getSession().getMapper(JobAccountLogMapper.class);
jobAccountLog.setBjModified(LocalDateTime.now()); // jobAccountLog.setBjModified(LocalDateTime.now());
jobAccountLogMapper.updateByExampleSelective(jobAccountLog, JobAccountLogExample.newAndCreateCriteria().andAccountIdEqualTo(jobAccountLog.getAccountId()).andJobNameEqualTo(jobAccountLog.getJobName()).example()); // jobAccountLogMapper.updateByExampleSelective(jobAccountLog, JobAccountLogExample.newAndCreateCriteria().andAccountIdEqualTo(jobAccountLog.getAccountId()).andJobNameEqualTo(jobAccountLog.getJobName()).example());
} // }
} // }
} // }
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
log.warn("Ebay定时同步费用接口错误", e); // log.warn("Ebay定时同步费用接口错误", e);
} finally { // } finally {
SessionUtil.closeSession(); // SessionUtil.closeSession();
} // }
} // }
//
private int getCount(JobPointLog jobPointLog) { // private int getCount(JobPointLog jobPointLog) {
int i = 0; // int i = 0;
try { // try {
DcBaseCompanyAccountMapper accountMapper = SessionUtil.getSession().getMapper(DcBaseCompanyAccountMapper.class); // DcBaseCompanyAccountMapper accountMapper = SessionUtil.getSession().getMapper(DcBaseCompanyAccountMapper.class);
i = (int) accountMapper.countByExample(DcBaseCompanyAccountExample.newAndCreateCriteria().andPlatformIdEqualTo(12).example()); // i = (int) accountMapper.countByExample(DcBaseCompanyAccountExample.newAndCreateCriteria().andPlatformIdEqualTo(12).example());
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
} finally { // } finally {
SessionUtil.closeSession(); // SessionUtil.closeSession();
} // }
return i; // return i;
} // }
//
public void callSaasApi(JobAccountLog job) { // public void callSaasApi(JobAccountLog job) {
HashMap<String, Object> map = new HashMap<>(5); // HashMap<String, Object> map = new HashMap<>(5);
map.put("account_id", job.getAccountId()); // map.put("account_id", job.getAccountId());
map.put("AccountEntrySortType", "AccountEntryItemNumberAscending"); // map.put("AccountEntrySortType", "AccountEntryItemNumberAscending");
map.put("BeginDate", job.getStartTime().minusHours(8).minusMinutes(2)); // map.put("BeginDate", job.getStartTime().minusHours(8).minusMinutes(2));
map.put("EndDate", job.getEndTime().minusHours(8)); // map.put("EndDate", job.getEndTime().minusHours(8));
MediaType mediaType = MediaType.parse("application/json"); // MediaType mediaType = MediaType.parse("application/json");
Integer pageNumber = 0; // Integer pageNumber = 0;
DcBaseFinanceEbay dcBaseFinanceEbay = new DcBaseFinanceEbay(); // DcBaseFinanceEbay dcBaseFinanceEbay = new DcBaseFinanceEbay();
Response response = null; // Response response = null;
try { // try {
do { // do {
map.put("PageNumber", job.getPageIndex() > 0 ? job.getPageIndex() : 1); // map.put("PageNumber", job.getPageIndex() > 0 ? job.getPageIndex() : 1);
RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map)); // RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
Request request = new Request.Builder() // Request request = new Request.Builder()
.url(propertiesUtil.getPropertyAsString("EBAY_FINANCE_URL")) // .url(propertiesUtil.getPropertyAsString("EBAY_FINANCE_URL"))
.post(body) // .post(body)
.addHeader("Content-Type", "application/json") // .addHeader("Content-Type", "application/json")
.build(); // .build();
log.warn(JSON.toJSONString(map)); // log.warn(JSON.toJSONString(map));
response = client.newCall(request).execute(); // response = client.newCall(request).execute();
log.warn(JSON.toJSONString(map)); // log.warn(JSON.toJSONString(map));
if (response.isSuccessful()) { // if (response.isSuccessful()) {
EbayResult ebayResult = JSON.parseObject(response.body().byteStream(), EbayResult.class); // EbayResult ebayResult = JSON.parseObject(response.body().byteStream(), EbayResult.class);
if (ebayResult != null && ebayResult.getAck() != null && ebayResult.getAck().equals("Success")) { // if (ebayResult != null && ebayResult.getAck() != null && ebayResult.getAck().equals("Success")) {
AccountEntries accountEntries = ebayResult.getAccountEntries(); // AccountEntries accountEntries = ebayResult.getAccountEntries();
if (accountEntries != null) { // if (accountEntries != null) {
List<AccountEntry> accountEntryList = accountEntries.getAccountEntry(); // List<AccountEntry> accountEntryList = accountEntries.getAccountEntry();
if (accountEntryList != null && accountEntryList.size() > 0) { // if (accountEntryList != null && accountEntryList.size() > 0) {
for (AccountEntry accountEntry : accountEntryList) { // for (AccountEntry accountEntry : accountEntryList) {
LocalDateTime gmt = LocalDateTime.from(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(accountEntry.getGmtDate_())); // LocalDateTime gmt = LocalDateTime.from(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(accountEntry.getGmtDate_()));
dcBaseFinanceEbay.setGmtDate(gmt); // dcBaseFinanceEbay.setGmtDate(gmt);
dcBaseFinanceEbay.setBjDate(dcBaseFinanceEbay.getGmtDate().plusHours(8)); // dcBaseFinanceEbay.setBjDate(dcBaseFinanceEbay.getGmtDate().plusHours(8));
BeanUtils.copyProperties(dcBaseFinanceEbay, accountEntry); // BeanUtils.copyProperties(dcBaseFinanceEbay, accountEntry);
if (accountEntry.getGrossAmount_() != null) { // if (accountEntry.getGrossAmount_() != null) {
dcBaseFinanceEbay.setGrossAmount(accountEntry.getGrossAmount_().getValue()); // dcBaseFinanceEbay.setGrossAmount(accountEntry.getGrossAmount_().getValue());
dcBaseFinanceEbay.setCurrency(accountEntry.getGrossAmount_().getCurrency()); // dcBaseFinanceEbay.setCurrency(accountEntry.getGrossAmount_().getCurrency());
dcBaseFinanceEbay.setExchangeRate(CallBailunSystem.getExchangeRate(dcBaseFinanceEbay.getCurrency(), CurrencyType.CNY.value(), dcBaseFinanceEbay.getBjDate())); // dcBaseFinanceEbay.setExchangeRate(CallBailunSystem.getExchangeRate(dcBaseFinanceEbay.getCurrency(), CurrencyType.CNY.value(), dcBaseFinanceEbay.getBjDate()));
dcBaseFinanceEbay.setExchangeRateUsd(CallBailunSystem.getExchangeRate(dcBaseFinanceEbay.getCurrency(), CurrencyType.USD.value(), dcBaseFinanceEbay.getBjDate())); // dcBaseFinanceEbay.setExchangeRateUsd(CallBailunSystem.getExchangeRate(dcBaseFinanceEbay.getCurrency(), CurrencyType.USD.value(), dcBaseFinanceEbay.getBjDate()));
} // }
if (accountEntry.getGrossAmount_() != null) { // if (accountEntry.getGrossAmount_() != null) {
dcBaseFinanceEbay.setNetAmount(accountEntry.getNetAmount_().getValue()); // dcBaseFinanceEbay.setNetAmount(accountEntry.getNetAmount_().getValue());
} // }
dcBaseFinanceEbay.setAccountId(job.getAccountId()); // dcBaseFinanceEbay.setAccountId(job.getAccountId());
dcBaseFinanceEbay.setCompanyId(job.getCompanyId()); // dcBaseFinanceEbay.setCompanyId(job.getCompanyId());
dcBaseFinanceEbay.setBjModified(LocalDateTime.now()); // dcBaseFinanceEbay.setBjModified(LocalDateTime.now());
DcBaseFinanceEbayMapper dcBaseFinanceEbayMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayMapper.class); // DcBaseFinanceEbayMapper dcBaseFinanceEbayMapper = SessionUtil.getSession().getMapper(DcBaseFinanceEbayMapper.class);
int i = dcBaseFinanceEbayMapper.updateByExampleSelective(dcBaseFinanceEbay, DcBaseFinanceEbayExample.newAndCreateCriteria().andRefNumberEqualTo(dcBaseFinanceEbay.getRefNumber() == null ? "" : dcBaseFinanceEbay.getRefNumber()).andItemIdEqualTo(dcBaseFinanceEbay.getItemId() == null ? "" : dcBaseFinanceEbay.getItemId()).andAccountEntryTypeEqualTo(dcBaseFinanceEbay.getAccountEntryType() == null ? "" : dcBaseFinanceEbay.getAccountEntryType()).andGmtDateEqualTo(dcBaseFinanceEbay.getGmtDate()).example()); // int i = dcBaseFinanceEbayMapper.updateByExampleSelective(dcBaseFinanceEbay, DcBaseFinanceEbayExample.newAndCreateCriteria().andRefNumberEqualTo(dcBaseFinanceEbay.getRefNumber() == null ? "" : dcBaseFinanceEbay.getRefNumber()).andItemIdEqualTo(dcBaseFinanceEbay.getItemId() == null ? "" : dcBaseFinanceEbay.getItemId()).andAccountEntryTypeEqualTo(dcBaseFinanceEbay.getAccountEntryType() == null ? "" : dcBaseFinanceEbay.getAccountEntryType()).andGmtDateEqualTo(dcBaseFinanceEbay.getGmtDate()).example());
if (i == 0) { // if (i == 0) {
dcBaseFinanceEbayMapper.insertSelective(dcBaseFinanceEbay); // dcBaseFinanceEbayMapper.insertSelective(dcBaseFinanceEbay);
} // }
} // }
} // }
} // }
pageNumber = ebayResult.getEntriesPerPage(); // pageNumber = ebayResult.getEntriesPerPage();
} else { // } else {
throw new RuntimeException("授权错误"); // throw new RuntimeException("授权错误");
} // }
} else { // } else {
throw new RuntimeException("接口调用失败"); // throw new RuntimeException("接口调用失败");
} // }
job.setPageIndex(job.getPageIndex() + 1); // job.setPageIndex(job.getPageIndex() + 1);
} while (!pageNumber.equals(0)); // } while (!pageNumber.equals(0));
job.setPageIndex(1); // job.setPageIndex(1);
job.setStartTime(job.getEndTime()); // job.setStartTime(job.getEndTime());
job.setEndTime(job.getStartTime().plusDays(job.getIntervalTime()).isAfter(LocalDateTime.now()) ? LocalDateTime.now() : job.getEndTime().plusDays(job.getIntervalTime())); // job.setEndTime(job.getStartTime().plusDays(job.getIntervalTime()).isAfter(LocalDateTime.now()) ? LocalDateTime.now() : job.getEndTime().plusDays(job.getIntervalTime()));
job.setMessage("执行成功"); // job.setMessage("执行成功");
} catch (Exception e) { // } catch (Exception e) {
job.setMessage(e.getMessage()); // job.setMessage(e.getMessage());
} finally { // } finally {
if (response != null) { // if (response != null) {
response.close(); // response.close();
} // }
} // }
} // }
//
} //}
import com.bailuntec.domain.entity.JobAccountLog;
import com.bailuntec.domain.entity.JobPointLog;
import com.bailuntec.job.EbayFinanceAdSyncJob;
import com.bailuntec.job.EbayFinanceSyncJob;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.executor.ShardingContexts;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Slf4j
public class EbayFinanceSyncJobTest {
@Test
public void test3() {
EbayFinanceSyncJob skuSyncJob = new EbayFinanceSyncJob();
ShardingContext job = new ShardingContext(new ShardingContexts("1", "job", 1, "", new HashMap<>()), 0);
skuSyncJob.executeJob(job, new JobPointLog("", null, 100, 1, 1,
LocalDateTime.now().minusMonths(1),
LocalDateTime.now().minusDays(29)));
}
@Test
public void test1() {
ExecutorService threadPool = Executors.newFixedThreadPool(300);
//获取时间区间reportDate列表
List<LocalDateTime> localDateList = Stream.iterate(LocalDateTime.of(2020, 9, 30, 0, 0), localDate -> localDate.plusDays(1))
.limit(ChronoUnit.DAYS.between(LocalDateTime.of(2020, 9, 30, 0, 0),
LocalDateTime.of(2020, 11, 2, 0, 0)) + 1)
.collect(Collectors.toList());
localDateList.forEach(localDateTime -> {
threadPool.execute(() -> {
EbayFinanceAdSyncJob skuSyncJob = new EbayFinanceAdSyncJob();
JobAccountLog jobAccountLog = new JobAccountLog();
jobAccountLog.setAccountId(314);
jobAccountLog.setStartTime(localDateTime);
jobAccountLog.setEndTime(localDateTime.plusDays(1));
jobAccountLog.setIntervalTime(1);
jobAccountLog.setPageIndex(1);
jobAccountLog.setPageSize(100);
skuSyncJob.callSaasApi(jobAccountLog, null);
});
});
threadPool.shutdown();
try {//等待直到所有任务完成
threadPool.awaitTermination(Integer.MAX_VALUE, TimeUnit.MINUTES);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
...@@ -3,6 +3,7 @@ package com.bailuntec.job; ...@@ -3,6 +3,7 @@ package com.bailuntec.job;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.bailuntec.domain.entity.DcBaseCompanyAccount; import com.bailuntec.domain.entity.DcBaseCompanyAccount;
import com.bailuntec.domain.entity.DcBaseFinanceEbay; import com.bailuntec.domain.entity.DcBaseFinanceEbay;
import com.bailuntec.domain.entity.JobPointLog;
import com.bailuntec.domain.example.DcBaseCompanyAccountExample; import com.bailuntec.domain.example.DcBaseCompanyAccountExample;
import com.bailuntec.domain.example.DcBaseFinanceEbayExample; import com.bailuntec.domain.example.DcBaseFinanceEbayExample;
import com.bailuntec.mapper.DcBaseCompanyAccountMapper; import com.bailuntec.mapper.DcBaseCompanyAccountMapper;
...@@ -16,10 +17,12 @@ import org.junit.Test; ...@@ -16,10 +17,12 @@ import org.junit.Test;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* <p> * <p>
...@@ -80,11 +83,21 @@ public class EbayFinanceAdSyncJobTest { ...@@ -80,11 +83,21 @@ public class EbayFinanceAdSyncJobTest {
@Test @Test
public void testThreadPool() { public void testThreadPool() {
EbayFinanceAdSyncJob ebayFinanceAdSyncJob = new EbayFinanceAdSyncJob(); EbayFinanceAdSyncJob ebayFinanceAdSyncJob = new EbayFinanceAdSyncJob();
ShardingContext shardingContext = new ShardingContext(
new ShardingContexts("x", "base-sync-finance-ebay-ad", 1, null, new HashMap<>()), 0
);
ebayFinanceAdSyncJob.executeJob(shardingContext, null); LocalDateTime start = LocalDateTime.of(2020, 10, 31, 0, 0);
LocalDateTime end = LocalDateTime.of(2020, 11, 16, 0, 0);
List<LocalDateTime> localDateTimeList = Stream.iterate(start,
localDateTime -> localDateTime.plusDays(1))
.limit(ChronoUnit.DAYS.between(start, end) + 1)
.collect(Collectors.toList());
localDateTimeList.parallelStream().forEach(localDateTime -> {
JobPointLog jobPointLog = new JobPointLog();
jobPointLog.setStartTime(localDateTime);
jobPointLog.setEndTime(localDateTime.plusDays(1));
ebayFinanceAdSyncJob.executeJob(null, jobPointLog);
});
} }
} }
...@@ -22,6 +22,13 @@ public class DruidDataSourceFactory implements DataSourceFactory { ...@@ -22,6 +22,13 @@ public class DruidDataSourceFactory implements DataSourceFactory {
hikariConfig.setJdbcUrl(this.props.getProperty("url")); hikariConfig.setJdbcUrl(this.props.getProperty("url"));
hikariConfig.setUsername(this.props.getProperty("username")); hikariConfig.setUsername(this.props.getProperty("username"));
hikariConfig.setPassword(this.props.getProperty("password")); hikariConfig.setPassword(this.props.getProperty("password"));
hikariConfig.setReadOnly(false);
hikariConfig.setConnectionTimeout(60000L);
hikariConfig.setIdleTimeout(60000L);
hikariConfig.setValidationTimeout(3000L);
hikariConfig.setMaxLifetime(60000L);
hikariConfig.setMaximumPoolSize(1000);
hikariConfig.setMinimumIdle(10);
return new HikariDataSource(hikariConfig); return new HikariDataSource(hikariConfig);
} }
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<!--<properties resource="db-tj.properties"/>--> <!--<properties resource="db-tj.properties"/>-->
<properties resource="db-dev.properties"/> <properties resource="db-dev.properties"/>
<!-- <properties resource="db-prod.properties"/>--> <!-- <properties resource="db-prod.properties"/>-->
<settings> <settings>
<setting name="mapUnderscoreToCamelCase" value="true"/> <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings> </settings>
......
...@@ -10,8 +10,9 @@ EVENT_RDB_STORAGE_PASSWORD=#7kfnymAM$Y9-Ntf ...@@ -10,8 +10,9 @@ EVENT_RDB_STORAGE_PASSWORD=#7kfnymAM$Y9-Ntf
ZOOKEEPER_SERVER=172.31.255.120:2181 ZOOKEEPER_SERVER=172.31.255.120:2181
NAME_SPACE=data-center NAME_SPACE=data-center
JOB_NAME=show-auto-turnover2 JOB_NAME=show-auto-turnover4
JOB_CRON=0 0 3 * * ? #JOB_CRON=0 0 3 * * ?
JOB_CRON=0 50 9 * * ?
SHARDING_TOTAL_COUNT=8 SHARDING_TOTAL_COUNT=8
...@@ -20,6 +21,6 @@ JOB_CRON_NE_NORMAL=0 0 1 ? * MON ...@@ -20,6 +21,6 @@ JOB_CRON_NE_NORMAL=0 0 1 ? * MON
JOB_NAME_INCREMENT=show-auto-turnover-increment JOB_NAME_INCREMENT=show-auto-turnover-increment
JOB_CRON_INCREMENT=0 52 17 * * ? JOB_CRON_INCREMENT=0 0 14 * * ?
SHARDING_TOTAL_COUNT_INCREMENT=8 SHARDING_TOTAL_COUNT_INCREMENT=8
...@@ -110,11 +110,6 @@ public class AutoTurnoverTest { ...@@ -110,11 +110,6 @@ public class AutoTurnoverTest {
autoTurnoverJob.executeJob(shardingContext, jobPointLog); autoTurnoverJob.executeJob(shardingContext, jobPointLog);
} }
// @Test
// public void test5() {
// AutoTurnoverJobListener autoTurnoverJobListener = new AutoTurnoverJobListener();
// autoTurnoverJobListener.afterJobExecuted(null);
// }
@Test @Test
public void test55() { public void test55() {
...@@ -137,11 +132,12 @@ public class AutoTurnoverTest { ...@@ -137,11 +132,12 @@ public class AutoTurnoverTest {
} }
//949406801 GZBLWH
@Test @Test
public void testXX() { public void testXX() {
DcBaseStock dcBaseStock = SessionUtil.getSession().getMapper(DcBaseStockMapper.class) DcBaseStock dcBaseStock = SessionUtil.getSession().getMapper(DcBaseStockMapper.class)
.selectOneByExample(DcBaseStockExample.newAndCreateCriteria() .selectOneByExample(DcBaseStockExample.newAndCreateCriteria()
.andBailunSkuEqualTo("948906502") .andBailunSkuEqualTo("949406801")
.andWarehouseCodeEqualTo("GZBLWH") .andWarehouseCodeEqualTo("GZBLWH")
.example()); .example());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment