quartz 实例
第一步:添加jar包

第二步:在spring配置文件中添加
<context:annotation-config/>

第三步:编写定时代码

我们通常做Java后台接口,是让前端访问的,让前端获取数据或者做增删改查,但是有时候,我们做的Java接口是让其他系统的Java后台调用的,让其他系统从我们这个系统获取数据或者做业务
public class HttpRequestUtil {
/**
* 向指定URL发送GET方法的请求
*
* @param url
* 发送请求的URL
* @param param
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return URL 所代表远程资源的响应结果
*/
public static String doPOST(String urlAddress, String params) {
try {
// 创建URL对象
URL url = new URL(urlAddress);
// 打开连接 获取连接对象
URLConnection connection = url.openConnection();
// 设置请求编码
connection.addRequestProperty("encoding", "utf8");
// 设置允许输入
connection.setDoInput(true);
// 设置允许输出
connection.setDoOutput(true);
// 从连接对象中获取输出字节流对象
OutputStream outputStream = connection.getOutputStream();
// 将输出的字节流对象包装成字符流写出对象
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
// 创建一个输出缓冲区对象,将要输出的字符流写出对象传入
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
// 向输出缓冲区中写入请求参数
if(params != null){
bufferedWriter.write(params);
}
// 刷新输出缓冲区
bufferedWriter.flush();
// 从连接对象中获取输入字节流对象
InputStream inputStream = connection.getInputStream();
// 将输入字节流对象包装成输入字符流对象,并将字符编码为GBK格式
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf8");
// 创建一个输入缓冲区对象,将要输入的字符流对象传入
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
// 创建一个字符串对象,用来接收每次从输入缓冲区中读入的字符串
String line;
// 创建一个可变字符串对象,用来装载缓冲区对象的最终数据,使用字符串追加的方式,将响应的所有数据都保存在该对象中
StringBuilder stringBuilder = new StringBuilder();
// 使用循环逐行读取缓冲区的数据,每次循环读入一行字符串数据赋值给line字符串变量,直到读取的行为空时标识内容读取结束循环
while ((line = bufferedReader.readLine()) != null) {
// 将缓冲区读取到的数据追加到可变字符对象中
stringBuilder.append(line);
}
// 依次关闭打开的输入流
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
// 依次关闭打开的输出流
bufferedWriter.close();
outputStreamWriter.close();
outputStream.close();
// 将可变字符串转换成String对象返回
return stringBuilder.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static String sendGet(String url, String param) {
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
// 遍历所有的响应头字段
/* for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}*/
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
/**
* 向指定 URL 发送POST方法的请求
*
* @param url
* 发送请求的 URL
* @param param
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
public static String sendPost(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!"+e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
return result;
}
}
}
quartz 实例的更多相关文章
- 初识Quartz之第一个Quartz实例
转: 初识Quartz之第一个Quartz实例 2018年04月09日 17:07:31 carson0408 阅读数:366 版权声明:本文为博主原创文章,未经博主允许不得转载. https:/ ...
- 如何在spring中运行多个schedulers quartz 实例
http://wzping.iteye.com/blog/468263 1.定义一个JOB <!-- 使用pojo来做job,指定pojo和method --> <bean ...
- (转)Java任务调度框架Quartz入门教程指南(三)任务调度框架Quartz实例详解深入理解Scheduler,Job,Trigger,JobDetail
http://blog.csdn.net/zixiao217/article/details/53053598 首先给一个简明扼要的理解: Scheduler 调度程序-任务执行计划表,只有安排进执行 ...
- Quartz实例:quartz定时任务代码示例
转自:http://www.blogchong.com/post/96.html quartz定时任务调度框架,使用实例. Job类://即实际调度任务实现 . package net.csdn.ed ...
- quartz 实例记录
之前介绍过了quartz的一些相关理论知识,感觉上挺简单的,实际动手操作也确实如此,去quartz的官网上把Jar包下载下来以后,会看到它的目录里有例子程序,看完第一个例子觉得还可以,但是看后面两个例 ...
- quartz实例以及主要事项(注解)
实现任务类: package com.vnetoo.nec.base.quartz; import org.springframework.context.annotation.Lazy;import ...
- 免费开源的DotNet任务调度组件Quartz.NET(.NET组件介绍之五)
很多的软件项目中都会使用到定时任务.定时轮询数据库同步,定时邮件通知等功能..NET Framework具有“内置”定时器功能,通过System.Timers.Timer类.在使用Timer类需要面对 ...
- 【Quartz】将定时任务持久化到数据库
之前的文章所做的demo是将定时任务的信息保存在内存中的,见以下配置 org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore 如果,我们需要在 ...
- 【淘淘】Quartz之集群利弊
一.前言: 虽然单个Quartz实例能给予我们很好的任务job调度能力,但它不能满足典型的企业需求,如可伸缩性.高可靠性满足.假如你需要故障转移的能力并能运行日益增多的 Job,Quartz集群势必成 ...
随机推荐
- HDFS的操作SHELL和API
HDFS的shell操作和JavaAPI的使用: WEB WEB端口50090查看SecondaryNameNode信息.可以查看Hadoop的版本,NameNode的IP,Checkpoint等信息 ...
- angularjs路由传递参数
ui-sref.$state.go 的区别 ui-sref 一般使用在 <a>...</a>: $state.go('someState')一般使用在 controller里面 ...
- jmeter本机内存溢出如何修改?
websocket连接过程中内存溢出,本机配置的内存最大和最小设置的512: 一.后台返回 二.结果树返回: Thread Name: 线程组 1-9Sample Start: 2017-09-11 ...
- python学习之----导航树
findAll 函数通过标签的名称和属性来查找标签 .但是如果你需要通过标签在文档中的位 置来查找标签,该怎么办?这就是导航树(Navigating Trees)的作用.在第1 章里,我们 看过用单一 ...
- Python笔记:字典的fromkeys方法创建的初始value同内存地址问题
dict中的fromkeys()函数可以通过一个list来创建一个用同一初始value的dict. d = dict.fromkeys(["苹果", "菠萝"] ...
- day4----函数-闭包-装饰器
本文档内容: 1 python中三种名称空间和作用域 2 函数的使用 3 闭包 4 装饰器 一 python中三种名称空间和作用域 1.1名称空间: 当程序运行时,代码从上至下依次执行,它会将变量与值 ...
- django-BaseCommand自带的权限分组
note: 应该是这样的结构,并且commands名字是固定的. 执行: python manage.py initgroup initgroup.py # -*- coding: utf-8 - ...
- vmware虚拟网络
VMware 虚拟网络 1.1. 虚拟网卡.虚拟交换机当使用 VMware Workstation 安装一个虚拟机时就会自动安装一块虚拟网此外还可手动给虚拟机添加多块虚拟网卡.交换机用于电(光)信号的 ...
- iOS跳转洁面时隐藏tabBar的方法
//1.设置self.tabBarController.tabBar.hidden=YES; self.tabBarController.tabBar.hidden=YES; //2. ...
- SikuliI:安装过程(Windows)
[转载至:http://blog.csdn.net/defectfinder/article/details/49819215] 一.简单介绍 SikuliIDE和Sikuli Script就是现在的 ...