我用http工具访问一个网站,将获取的内容保存到文件当中,用main方法跑的时候每次获取的内容都是一样的,代码如下
private static void mutiThread(){
for(int i=0;i<300;i++){
new Thread(new Runnable(){
@Override
public void run() {
Response resp = Http.get("http://localhost:18081/sjw/front/hbsjwjct");
if(resp.isOK()){
String content = resp.getContent();
File f = new File("D:\\httptest\\nutz\\index_"+R.UU32()+".html");
Files.write(f, content);
}
}
}).start();
}
}
然后我在servcie中写了一个同样的方法,然后通过起一个job调用这个方法,得到的结果是每次内容大小都不一样,内容肯定就不一样了,service中代码如下
public void staticSites(){
/*List<CmsSite> siteList = this.query();
for(CmsSite cmsSite:siteList){
staticSite(cmsSite);
}*/
new Thread(new Runnable(){
@Override
public void run() {
Response resp = Http.get("http://localhost:18081/sjw/front/hbsjwjct");
if(resp.isOK()){
String content = resp.getContent();
File f = new File("D:\\httptest\\nutz\\index_"+R.UU32()+".html");
Files.write(f, content);
}
}
}).start();
}
job中的代码如下
public class StaticHtmlJob implements Job {
private static final Log log = Logs.get();
@Inject
Dao dao;
@Inject
SiteService siteService;
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
JobDataMap data = context.getJobDetail().getJobDataMap();
String taskId = context.getJobDetail().getKey().getName();
siteService.staticSites();
dao.update(Task.class,
Chain.make("exeAt", (int) (System.currentTimeMillis() / 1000))
.add("exeResult", "执行成功"), Cnd.where("id", "=", taskId));
}
}
为什么在service中每次获得的文件大小都不一样。。