一般大型业务系统都是有多个服务节点的,你可以单独用一个服务器来处理这个,这样就不会影响到本身下单的服务
创新互联建站专注于企业成都全网营销、网站重做改版、五家渠网站定制设计、自适应品牌网站建设、H5建站、商城网站制作、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为五家渠等各大城市提供网站开发制作服务。
也可以通过proc巡检当前订单表,然后进行处理
按照你的要求编写的Java的带取消的警告信息框的完整程序如下
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class F extends JFrame implements ActionListener{
JButton jb=new JButton("确定");
JPanel jp=new JPanel();
F(){
jb.addActionListener(this);
jp.add(jb);
add(jp);
setSize(200, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new F();
}
@Override
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==jb){
int n=JOptionPane.showConfirmDialog(this, "跳往另一页面?", "跳转警告",JOptionPane.WARNING_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
if(n==0){
FL fl=new FL();//创建新页面
this.dispose();//销毁旧页面
}
}
}
}
class FL extends JFrame{
JLabel jl=new JLabel("另一页面");
JPanel jp=new JPanel();
FL(){
jp.add(jl);
add(jp);
setSize(200, 100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
}
运行结果
每次访问时只取45分钟之内创建的并且未付钱的订单不就可以了。当用户查看它的订单时再来检查是否这个订单已经过时,过时了就在数据库里面标记为失效,没过时就显示出来,这样一来就不需要在后台去跟踪订单状态了。
当然非要用定时器做也行,要按 J2EE 1.4 + 的定时器规范,不过我不了解这个定时器任务。 如果自己直接在 servlet 初始化或 servlet context 启动时创建线程就违反了J2EE 的规范(因为不应该自己管理线程,也不应该从自己创建的线程中访问绑定到事务管理和用户身份认证这两种执行上下文 J2EE 资源),可能能够用 requiresNew 方式调用本地 EJB 吧,不确定,需要证实。曾经在 Sybase EAServer 4.x / 5.x 上创建线程调用数据库操作直接崩溃退出了(还是纯 Java 稳定啊)。