社区
Web 开发
帖子详情
jsp中如何實現逾期通知功能﹐
xjhego
2004-08-29 02:56:45
jsp如何做一個逾期通知,即在數據中記錄了某一信息的包括記錄的創建時間等﹐當一個月后這筆記錄沒有被處理時就自動發送一封mail提醒處理﹐謝謝﹗
...全文
294
14
打赏
收藏
jsp中如何實現逾期通知功能﹐
jsp如何做一個逾期通知,即在數據中記錄了某一信息的包括記錄的創建時間等﹐當一個月后這筆記錄沒有被處理時就自動發送一封mail提醒處理﹐謝謝﹗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wenming168
2004-09-02
打赏
举报
回复
同意 yaray(雅睿,生活在别处,工作在别墅)
你也可以写一servlet , 在servlet中启动一个线程用表发email
xiangbo520
2004-08-30
打赏
举报
回复
收藏!!!!!!!!!
yaray
2004-08-30
打赏
举报
回复
上面这几个程序共同完成一个在Web工程中定时执行指定任务的功能。更具体的说明可以参看程序中的说明。
yaray
2004-08-30
打赏
举报
回复
用ServletContextListener吧。
代码附上:
===========
package com.yaray.autotask;
public class ProjectServletContextListner implements javax.servlet.ServletContextListener{
private static java.util.Timer timer = null; // 定时器
// 此方法仅在起动Web容器(或服务器)时被调用一次
public void contextInitialized(javax.servlet.ServletContextEvent event) {
timer = new java.util.Timer(true);
javax.servlet.ServletContext ctx = event.getServletContext();
ctx.log("定时器已启动,任务开始执行");
/*
//如果是用web.xml文件配置参数,则用下面的方式读取参数设置值
long period = Long.valueOf((String)ctx.getInitParameter("period")).longValue();
*/
timer.schedule(new NewTask(), // 所需要执行的任务
0, // 延迟时间 ( 0 --- 表示起动Web容器(或服务器)就立即执行此任务 )
5*1000 // 任务的执行间隔时间[单位:毫秒] (此处的间隔时间是5秒)
);
}// End method: contextInitialized(javax.servlet.ServletContextEvent event)
// 此方法仅在关闭Web容器(或服务器)时被调用一次
public void contextDestroyed(javax.servlet.ServletContextEvent event) {
timer.cancel();
event.getServletContext().log("定时器已销毁,任务执行结束");
}// End method: contextDestroyed(javax.servlet.ServletContextEvent event)
}///:~
/*
在工程的WEB-INF\web.xml配置文件中加入如下三行,所计划的任务就会在Web容器(或服务器)启动时自动开始执行了:
<listener>
<listener-class>com.yaray.autotask.ProjectServletContextListner</listener-class>
</listener>
*/
/**
* 在无特殊要求的情况下这个类无需修改;
* 只需要与ProjectServletContextListner类保存在同一个.java文件中即可(或同一个文件夹中,需定义与其相同的包名)
*/
class NewTask extends java.util.TimerTask{
private static boolean isRunning = false; // 运行标志(表示是否正在运行计划的任务)
private static int t = 3; //
private CustomTask ct = TaskFactory.getTask();
public NewTask(){
}
public void run(){
if(!isRunning){ // 当未执行此任务时则开始执行
if(ct != null){
isRunning = true; // 将任务执行标志设置为正在执行
ct.execute(); // 执行任务
isRunning = false; // 将任务执行标志设置为执行完毕
}else{
if(t == 0) return;
t--;
System.out.println();
System.out.println(" [Error] [com.yaray.autotask.NewTask] [Method: run] The task is null.");
System.out.println(" [Error] [com.yaray.autotask.NewTask] [Method: run] The task is null.");
System.out.println(" [Error] [com.yaray.autotask.NewTask] [Method: run] The task is null.");
}
}else{
System.out.println("The task is running.");
}
}// End method: run()
}///:~
///////////////////////////////////////////////////////////////////////////////////////////////////////
/* 单独保存为CustomTask.java文件 */
package com.yaray.autotask;
public interface CustomTask{
/**
* 用于实现自定义的任务
*/
public void execute();
}///:~
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
/* 单独保存为TaskFactory.java文件 */
package com.yaray.autotask;
public class TaskFactory {
/**
* 功能:返回实现了CustomTask接口的类的实例对象
*
*
* 例: 如果实现了CustomTask接口的类名是MyTask,
* return new MyTask();
* 如上这样就可以了.
*/
public static CustomTask getTask(){
return null; // 此处仅返回null,用户应根据实际情况作出修改
}
}///:~
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
package com.yaray.autotask;
public MyTask implements com.yaray.task.CustomTask{
/* 任务执行主体(此处为实验代码,仅用来执行简单的信息输出语句) */
public void execute(){
System.out.println("在此方法中实现任务的主体");
}
}///:~
///////////////////////////////////////////////////////////////////////////////////////////////////////
LiGun
2004-08-30
打赏
举报
回复
tyrone98(林林) 同意
zhushizu
2004-08-30
打赏
举报
回复
呵呵,上面帖子介绍的多线程这里用不上吧!
在数据库里加一个触发器来触发这个事件,不过数据库能不能发邮件,那就要看楼主自已找答案了!
xiangbo520
2004-08-30
打赏
举报
回复
http://community.csdn.net/Expert/topic/2974/2974781.xml?temp=.4880945
你可以参考一下这个帖子
majar
2004-08-30
打赏
举报
回复
up
jiankou2001
2004-08-29
打赏
举报
回复
代码???
jiankou2001
2004-08-29
打赏
举报
回复
up
tyrone98
2004-08-29
打赏
举报
回复
写一个JAVA的服务程序,每过一定的时间读表记录,发送email就可以了.
xjhego
2004-08-29
打赏
举报
回复
我想過在數據庫做﹐可在數據庫做如何能發送mail啊,
如果在頁面做的話﹐只能在打開面時才能執行﹐在頁面沒有打時就不能觸發了
還有什么更好的方法呢
makejack
2004-08-29
打赏
举报
回复
我也碰到该问题,我的问题是当数据正式插入表中后,满六个月后将触发其它的表格申请要求前面处理,我想是不是可以用数据库的触发器来处理,虽然还没有直接找到,但我相信应该能做,另外实在不行,我想这样做:即在页面中做,在打开页面时,自动执行一个bean,该bean来处理这个问题,做完后,置当天执行标志,即每天只执行一次。
passren
2004-08-29
打赏
举报
回复
应该让数据库作这个动作,可以建立一个job定期run
CLShanYanSDKDataList.sqlite
CLShanYanSDKDataList.sqlite
IR2110
中
文文档-下载即用.zip
源码下载地址: https://pan.quark.cn/s/0d6e3002ba51 ### IR2110
中
文资料知识点详述 #### 一、概述 IR2110是一种专为脉冲宽度调制应用而设计的高性能驱动集成电路,在各类功率转换设备
中
具有广泛的应用,特别是在需要实现隔离驱动的场景下表现出色。该芯片融合了光电隔离与电磁隔离的优势,能够达成快速响应并保持较小的物理尺寸,尤其适合用于
中
小功率的变换装置。 #### 二、IR2110内部结构与特点 **1. 内部结构** - **封装形式**:采用DIP14引脚封装。 - **内部组成**:由逻辑输入单元、电平平移单元以及输出保护单元这三个主要部分构成。 - **悬浮电源**:借助自举电路实现,使得高端工作电压最高能够达到500V,支持±50V/ns的电压变化率。 - **工作电压范围**:逻辑电源电压范围为5~15V,输出电源端电压范围为10~20V,易于与其他逻辑电平进行匹配。 - **工作频率**:最高可达到500kHz。 - **功耗**:在15V条件下静态功耗仅为116mW。 - **延迟时间**:导通延迟120ns,关断延迟94ns。 - **峰值输出电流**:图腾柱输出峰值电流为2A。 **2. 特点** - **独立输入通道**:具备独立的低端和高端输入通道配置。 - **兼容性**:逻辑电源地与功率地之间允许±5V的偏移量,便于与TTL或CMOS电平进行匹配。 - **自举电源**:内置自举电源电路,有效减少驱动电源的数量,从而简化电路设计。 - **高dv/dt能力**:具有较强的dv/dt抑制能力,适合高频开关应用。 - **低功耗**:工作状态下功耗较低,有利于提升整体效率。 #### 三、高压侧...
大约__在连续状态空间
中
利用深度确定性策略梯度控制倾斜无人机simulink.rar
大约__在连续状态空间
中
利用深度确定性策略梯度控制倾斜无人机simulink.rar
实用代码脚本易语言源码API操作
实用代码脚本易语言源码API操作
Web 开发
81,111
社区成员
341,726
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章