Commit 78465be7 by wutong

再试一次OOM

parent b2ec4dfb
...@@ -11,7 +11,10 @@ import com.bailuntec.domain.enumerate.CurrencyType; ...@@ -11,7 +11,10 @@ import com.bailuntec.domain.enumerate.CurrencyType;
import com.bailuntec.domain.example.DcBaseCompanyAccountExample; import com.bailuntec.domain.example.DcBaseCompanyAccountExample;
import com.bailuntec.domain.example.DcBaseFinanceAmazonAdProductExample; import com.bailuntec.domain.example.DcBaseFinanceAmazonAdProductExample;
import com.bailuntec.domain.example.JobAccountLogExample; import com.bailuntec.domain.example.JobAccountLogExample;
import com.bailuntec.domain.pojo.*; import com.bailuntec.domain.pojo.AmazonAdAuth;
import com.bailuntec.domain.pojo.AmazonAdProduct;
import com.bailuntec.domain.pojo.AmazonAdReportLocationResult;
import com.bailuntec.domain.pojo.AmazonAdSuccessResult;
import com.bailuntec.mapper.DcBaseCompanyAccountMapper; import com.bailuntec.mapper.DcBaseCompanyAccountMapper;
import com.bailuntec.mapper.DcBaseFinanceAmazonAdProductMapper; import com.bailuntec.mapper.DcBaseFinanceAmazonAdProductMapper;
import com.bailuntec.mapper.JobAccountLogMapper; import com.bailuntec.mapper.JobAccountLogMapper;
...@@ -27,10 +30,7 @@ import okhttp3.*; ...@@ -27,10 +30,7 @@ import okhttp3.*;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -162,52 +162,43 @@ public class AmazonAdProductJob extends PointJob { ...@@ -162,52 +162,43 @@ public class AmazonAdProductJob extends PointJob {
return propertiesUtil.getPropertyAsString(siteUrl) + propertiesUtil.getPropertyAsString("GET_PRODUCT_ADS_REPORT_LOCATION"); return propertiesUtil.getPropertyAsString(siteUrl) + propertiesUtil.getPropertyAsString("GET_PRODUCT_ADS_REPORT_LOCATION");
} }
private void handleReport(String reportLocationUrl, JobAccountLog jobAccountLog, AmazonAdAuth amazonAdAuth) { private void handleReport(String reportLocationUrl, JobAccountLog jobAccountLog, AmazonAdAuth amazonAdAuth){
Response response = null; Response response = null;
GZIPInputStream gzin = null;
Request request = new Request.Builder()
.url(reportLocationUrl)
.addHeader("Authorization", amazonAdAuth.getAccessToken())
.addHeader("Amazon-Advertising-API-ClientId", amazonAdAuth.getClientId())
.addHeader("Amazon-Advertising-API-Scope", amazonAdAuth.getProfileId())
.addHeader("Content-Type", "application/json")
.build();
try{ try{
Request request = new Request.Builder()
.url(reportLocationUrl)
.addHeader("Authorization", amazonAdAuth.getAccessToken())
.addHeader("Amazon-Advertising-API-ClientId", amazonAdAuth.getClientId())
.addHeader("Amazon-Advertising-API-Scope", amazonAdAuth.getProfileId())
.addHeader("Content-Type", "application/json")
.build();
response = client.newCall(request).execute(); response = client.newCall(request).execute();
if (response.isSuccessful()) { if (response.isSuccessful()) {
GZIPInputStream gzin = null; gzin = new GZIPInputStream(response.body().byteStream());
try { List<AmazonAdProduct> amazonAdProductList = JSON.parseObject(gzin, new TypeReference<List<AmazonAdProduct>>(){}.getType());
gzin = new GZIPInputStream(response.body().byteStream()); gzin.close();
List<AmazonAdProduct> amazonAdProductList = JSON.parseObject(gzin,new TypeReference<List<AmazonAdProduct>>(){}.getType()); response.close();
gzin.close(); if (amazonAdProductList != null && amazonAdProductList.size() > 0) {
response.close(); DcBaseFinanceAmazonAdProduct dcBaseFinanceAmazonAdProduct = new DcBaseFinanceAmazonAdProduct();
if (amazonAdProductList != null && amazonAdProductList.size() > 0) { DcBaseFinanceAmazonAdProductMapper mapper = SessionUtil.getSession().getMapper(DcBaseFinanceAmazonAdProductMapper.class);
DcBaseFinanceAmazonAdProduct dcBaseFinanceAmazonAdProduct = new DcBaseFinanceAmazonAdProduct(); for (AmazonAdProduct amazonAdvert : amazonAdProductList) {
DcBaseFinanceAmazonAdProductMapper mapper = SessionUtil.getSession().getMapper(DcBaseFinanceAmazonAdProductMapper.class); if (BigDecimal.ZERO.compareTo(amazonAdvert.getCost()) != 0) {
for (AmazonAdProduct amazonAdvert : amazonAdProductList) { BeanUtils.copyProperties(dcBaseFinanceAmazonAdProduct, amazonAdvert);
if (BigDecimal.ZERO.compareTo(amazonAdvert.getCost()) != 0) { dcBaseFinanceAmazonAdProduct.setAccountId(jobAccountLog.getAccountId());
BeanUtils.copyProperties(dcBaseFinanceAmazonAdProduct, amazonAdvert); dcBaseFinanceAmazonAdProduct.setCompanyId(jobAccountLog.getCompanyId());
dcBaseFinanceAmazonAdProduct.setAccountId(jobAccountLog.getAccountId()); dcBaseFinanceAmazonAdProduct.setReportDate(jobAccountLog.getStartTime().toLocalDate());
dcBaseFinanceAmazonAdProduct.setCompanyId(jobAccountLog.getCompanyId()); dcBaseFinanceAmazonAdProduct.setExchangeRate(CallBailunSystem.getExchangeRate(dcBaseFinanceAmazonAdProduct.getCurrency(), CurrencyType.CNY.value(), jobAccountLog.getStartTime()));
dcBaseFinanceAmazonAdProduct.setReportDate(jobAccountLog.getStartTime().toLocalDate()); dcBaseFinanceAmazonAdProduct.setExchangeRateUsd(CallBailunSystem.getExchangeRate(dcBaseFinanceAmazonAdProduct.getCurrency(), CurrencyType.USD.value(), jobAccountLog.getStartTime()));
dcBaseFinanceAmazonAdProduct.setExchangeRate(CallBailunSystem.getExchangeRate(dcBaseFinanceAmazonAdProduct.getCurrency(), CurrencyType.CNY.value(), jobAccountLog.getStartTime())); dcBaseFinanceAmazonAdProduct.setBjModifyTime(LocalDateTime.now());
dcBaseFinanceAmazonAdProduct.setExchangeRateUsd(CallBailunSystem.getExchangeRate(dcBaseFinanceAmazonAdProduct.getCurrency(), CurrencyType.USD.value(), jobAccountLog.getStartTime())); DcBaseFinanceAmazonAdProductExample example = DcBaseFinanceAmazonAdProductExample.newAndCreateCriteria().andCompanyIdEqualTo(dcBaseFinanceAmazonAdProduct.getCompanyId()).andAccountIdEqualTo(dcBaseFinanceAmazonAdProduct.getAccountId()).andCampaignIdEqualTo(dcBaseFinanceAmazonAdProduct.getCampaignId()).andAdGroupIdEqualTo(dcBaseFinanceAmazonAdProduct.getAdGroupId()).andSkuEqualTo(dcBaseFinanceAmazonAdProduct.getSku()).andReportDateEqualTo(dcBaseFinanceAmazonAdProduct.getReportDate()).example();
dcBaseFinanceAmazonAdProduct.setBjModifyTime(LocalDateTime.now()); int i = mapper.updateByExampleSelective(dcBaseFinanceAmazonAdProduct,example);
DcBaseFinanceAmazonAdProductExample example = DcBaseFinanceAmazonAdProductExample.newAndCreateCriteria().andCompanyIdEqualTo(dcBaseFinanceAmazonAdProduct.getCompanyId()).andAccountIdEqualTo(dcBaseFinanceAmazonAdProduct.getAccountId()).andCampaignIdEqualTo(dcBaseFinanceAmazonAdProduct.getCampaignId()).andAdGroupIdEqualTo(dcBaseFinanceAmazonAdProduct.getAdGroupId()).andSkuEqualTo(dcBaseFinanceAmazonAdProduct.getSku()).andReportDateEqualTo(dcBaseFinanceAmazonAdProduct.getReportDate()).example(); if (i == 0) {
int i = mapper.updateByExampleSelective(dcBaseFinanceAmazonAdProduct,example); mapper.insertSelective(dcBaseFinanceAmazonAdProduct);
if (i == 0) {
mapper.insertSelective(dcBaseFinanceAmazonAdProduct);
}
} }
} }
amazonAdProductList = null;
}
} catch (Exception e) {
e.printStackTrace();
jobAccountLog.setMessage("解析Gzip格式的Report错误:" + ExceptionUtil.transform(e));
} finally {
if(gzin != null) {
gzin.close();
} }
amazonAdProductList = null;
} }
/* /*
* 今天只能拿到昨天的广告费, 不然不完整 * 今天只能拿到昨天的广告费, 不然不完整
...@@ -225,8 +216,17 @@ public class AmazonAdProductJob extends PointJob { ...@@ -225,8 +216,17 @@ public class AmazonAdProductJob extends PointJob {
} }
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();
log.error("调用获取AmazonADReportLocation错误:", e);
jobAccountLog.setMessage("调用获取AmazonADReportLocation错误:" + ExceptionUtil.transform(e)); jobAccountLog.setMessage("调用获取AmazonADReportLocation错误:" + ExceptionUtil.transform(e));
} finally { } finally {
if(gzin != null) {
try {
gzin.close();
} catch (IOException e) {
e.printStackTrace();
log.error("gzin关闭错误:", e);
}
}
if (response != null) { if (response != null) {
response.close(); response.close();
} }
......
...@@ -616,6 +616,6 @@ ...@@ -616,6 +616,6 @@
<select id="getListByPage" resultType="com.bailuntec.domain.entity.JobAccountLog"> <select id="getListByPage" resultType="com.bailuntec.domain.entity.JobAccountLog">
SELECT t2.message,t2.id,t1.company_id, t1.account_id, t2.job_name,t2.page_index,t2.page_size,t2.type,t2.interval_time,t2.start_time,t2.end_time, t2.task_ids FROM SELECT t2.message,t2.id,t1.company_id, t1.account_id, t2.job_name,t2.page_index,t2.page_size,t2.type,t2.interval_time,t2.start_time,t2.end_time, t2.task_ids FROM
(SELECT * FROM dc_base_company_account WHERE 1=1 and platform_id=15) t1 LEFT JOIN job_account_log t2 on t1.account_id = t2.account_id WHERE t2.message != '授权信息为空'order by id limit 1,24 (SELECT * FROM dc_base_company_account WHERE 1=1 and platform_id=15) t1 LEFT JOIN job_account_log t2 on t1.account_id = t2.account_id WHERE t2.message != '授权信息为空'order by id limit 1,2
</select> </select>
</mapper> </mapper>
\ No newline at end of file
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