我在我的java应用程序中使用谷歌地图Api。我需要每隔一分钟将查询发送到数据库并自动删除记录(位置信息)。我使用jsp删除记录,我想每隔一分钟调用一次这个jsp文件。如果我在项目外部执行,这个jsp文件就完全删除了记录,
delete markers.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%!Connection connection;
Statement statement;
ResultSet rs;
PreparedStatement preparedStatement;
%>
<%
ArrayList<Object> arrayList = new ArrayList<Object>();
String query1="select sno,time,date_time from jam_info";
connection=DBCreation.getConnection();
statement=connection.createStatement();
rs=statement.executeQuery(query1);
while(rs.next())
{
int sno=rs.getInt(1);
int expectedtime=rs.getInt(2);
Timestamp timeReg = rs.getTimestamp(3);
long time_minutes=(timeReg.getTime()/1000)/60;
long total_time=expectedtime+time_minutes;
System.out.println("expected time"+expectedtime);
System.out.println("record insert time"+timeReg);
System.out.println("time minutes inminutes"+(timeReg.getTime()/1000)/60);
System.out.println("totaltime"+total_time);
long currentTime = (System.currentTimeMillis()/1000)/60;
System.out.println("now"+currentTime);
if(total_time<currentTime)
{
preparedStatement=connection.prepareStatement("delete from jam_info where sno=?");
preparedStatement.setInt(1, sno);
int res=preparedStatement.executeUpdate();
if(res>0)
{
System.out.println(res+"deleted");
}
}
}
%>
</body>
</html>
有了这条记录,我可以根据我的要求删除记录,但是如何每隔一分钟使用这个jsp文件来点击服务器
答案 0 :(得分:1)
使用计时器发送ajax电话..
<script>
var myVar=setInterval(function(){myTimer()},1000);
function myTimer()
{
var d=new Date();
var t=d.toLocaleTimeString();
document.getElementById("demo").innerHTML=t;
}
function myStopFunction()
{
clearInterval(myVar);
}
</script>
答案 1 :(得分:1)
如果要在特定间隔时间执行操作,可以使用Quartz Scheduler。如果您希望从UI触发opeartions,请使用Jquery的setTimeout或setInterval并调用您的自定义方法来执行任何操作。
答案 2 :(得分:1)
您可以通过crontab安排它,如果您没有其权限,请询问您的系统管理员或dba -
通过以下命令打开cron文件;
crontab -e
转到最后一行并按小'o':它将使您在插入模式下移动并创建一个新行。
在此处粘贴以下行:
* / 1 * * * * /usr/......./bin/java -jar / .. path ... / my_file.jar
按esc键然后:“分号”然后键入wq然后按enter:它将保存在行上方并退出文件。
将在每隔1分钟后执行一次,并执行文件中的任何内容。