Commit 0890ff47 by wutong

优化代码

parent 666cbde3
...@@ -35,24 +35,16 @@ public class EbayFinanceSyncJob extends PointJob { ...@@ -35,24 +35,16 @@ public class EbayFinanceSyncJob extends PointJob {
@Override @Override
public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) { public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) {
int totalPage = getTotalPage(jobPointLog);//分片即将处理的账号总数
try { try {
JobAccountLogMapper jobAccountLogMapper = SessionUtil.getSession().getMapper(JobAccountLogMapper.class); JobAccountLogMapper jobAccountLogMapper = SessionUtil.getSession().getMapper(JobAccountLogMapper.class);
int totalPage = getTotalPage(jobPointLog);
/* /*
* 根据不同分片 * 根据不同分片
* 再分页去处理数据 * 再分页去拿不同的账号执行任务
*/ */
int shardingSize = totalPage % shardingContext.getShardingTotalCount() == 0 ? totalPage / shardingContext.getShardingTotalCount() : totalPage / shardingContext.getShardingTotalCount() + 1; int pageSize = totalPage % shardingContext.getShardingTotalCount() == 0? totalPage / shardingContext.getShardingTotalCount() : totalPage / shardingContext.getShardingTotalCount() + 1;
if (shardingContext.getShardingItem() + 1 < shardingContext.getShardingTotalCount()) { //拿到账号集合
totalPage = shardingSize * (shardingContext.getShardingItem() + 1); List<JobAccountLog> listByPage = jobAccountLogMapper.getListByPage(12,pageSize * shardingContext.getShardingItem(), pageSize);
}
int page = 0;
if (shardingContext.getShardingItem() > 0) {
page = shardingSize * shardingContext.getShardingItem();
}
do {
//拿到账号和任务信息去调接口
List<JobAccountLog> listByPage = jobAccountLogMapper.getListByPage(12,page * jobPointLog.getPageSize(), jobPointLog.getPageSize());
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);
...@@ -61,7 +53,6 @@ public class EbayFinanceSyncJob extends PointJob { ...@@ -61,7 +53,6 @@ public class EbayFinanceSyncJob extends PointJob {
jobAccountLog.setId(null); jobAccountLog.setId(null);
} }
callSaasApi(jobAccountLog); callSaasApi(jobAccountLog);
if (jobAccountLog.getId() == null) { //在任务表无记录 if (jobAccountLog.getId() == null) { //在任务表无记录
jobAccountLogMapper.insertSelective(jobAccountLog); jobAccountLogMapper.insertSelective(jobAccountLog);
} else { } else {
...@@ -70,8 +61,6 @@ public class EbayFinanceSyncJob extends PointJob { ...@@ -70,8 +61,6 @@ public class EbayFinanceSyncJob extends PointJob {
} }
} }
} }
page++;
} while (page <= totalPage);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.warn("Ebay定时同步费用接口错误",e); log.warn("Ebay定时同步费用接口错误",e);
...@@ -80,10 +69,17 @@ public class EbayFinanceSyncJob extends PointJob { ...@@ -80,10 +69,17 @@ public class EbayFinanceSyncJob extends PointJob {
} }
} }
private int getTotalPage(JobPointLog jobPointLog) throws Exception { private int getTotalPage(JobPointLog jobPointLog) {
int i = 0;
try {
DcBaseCompanyAccountMapper accountMapper = SessionUtil.getSession().getMapper(DcBaseCompanyAccountMapper.class); DcBaseCompanyAccountMapper accountMapper = SessionUtil.getSession().getMapper(DcBaseCompanyAccountMapper.class);
int l = (int)accountMapper.countByExample(DcBaseCompanyAccountExample.newAndCreateCriteria().andPlatformIdEqualTo(12).example()); i = (int)accountMapper.countByExample(DcBaseCompanyAccountExample.newAndCreateCriteria().andPlatformIdEqualTo(12).example());
return l % jobPointLog.getPageSize() == 0? l % jobPointLog.getPageSize() : l % jobPointLog.getPageSize() + 1; } catch (Exception e) {
e.printStackTrace();
} finally {
SessionUtil.closeSession();
}
return i % jobPointLog.getPageSize() == 0? i / jobPointLog.getPageSize() : i / jobPointLog.getPageSize() + 1;
} }
public void callSaasApi(JobAccountLog job) { public void callSaasApi(JobAccountLog job) {
......
...@@ -14,7 +14,7 @@ public class EbayFinanceSyncJobTest { ...@@ -14,7 +14,7 @@ public class EbayFinanceSyncJobTest {
public void test3() { public void test3() {
EbayFinanceSyncJob skuSyncJob = new EbayFinanceSyncJob(); EbayFinanceSyncJob skuSyncJob = new EbayFinanceSyncJob();
ShardingContext job = new ShardingContext(new ShardingContexts("1", "job", 3, "", new HashMap<>()), 1); ShardingContext job = new ShardingContext(new ShardingContexts("1", "job", 3, "", new HashMap<>()), 1);
skuSyncJob.executeJob(job, new JobPointLog("",1 ,100,1,1, LocalDateTime.now().minusMonths(1),LocalDateTime.now().minusDays(29))); skuSyncJob.executeJob(job, new JobPointLog("",null ,100,1,1, LocalDateTime.now().minusMonths(1),LocalDateTime.now().minusDays(29)));
} }
......
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