84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
怎么让一个程序延迟执行,指定延迟时间访问,比如收到请求后对该请求进行记录,让后续操作在一天呢延迟执行
可以使用调度框架 quartz
1.收到数据存库记录下来
2.linux下可以使用crond进行定时任务检查任务,并调用java提供得触发任务接口
3.把任务加入redis,使用java进行定时处理。
收到一个请求就创建一个线程,用ScheduledThreadPoolExecutor方法在固定的延迟后执行。
SpringMVC里面的Quartz,可以自由配置多个定时的任务
如果是Java Web项目,就在后台启动一个Servlet,例如<servlet><servlet-name>servlet的名字</servlet-name><servlet-class>servlet所在的包的路径</servlet-class> <load-on-startup>1</load-on-startup></servlet>
<servlet><servlet-name>servlet的名字</servlet-name><servlet-class>servlet所在的包的路径</servlet-class> <load-on-startup>1</load-on-startup></servlet>
并在后台维护一个线程池,将需要延迟执行的请求加入到线程池中,并为每个线程加上时间标识,以便后续检查,Servlet定期从线程池中取出线程,检查是否该执行,如果满足执行条件,则执行,如果不满足,就将线程放回线程池。如果不是Web项目,可以使用Java的Timer,同时也维护一个线程池,使用Timer定时去做检查。
可以使用调度框架 quartz
1.收到数据存库记录下来
2.linux下可以使用crond进行定时任务检查任务,并调用java提供得触发任务接口
3.把任务加入redis,使用java进行定时处理。
收到一个请求就创建一个线程,用ScheduledThreadPoolExecutor方法在固定的延迟后执行。
SpringMVC里面的Quartz,可以自由配置多个定时的任务
如果是Java Web项目,就在后台启动一个Servlet,
例如
<servlet><servlet-name>servlet的名字</servlet-name><servlet-class>servlet所在的包的路径</servlet-class> <load-on-startup>1</load-on-startup></servlet>
并在后台维护一个线程池,将需要延迟执行的请求加入到线程池中,并为每个线程加上时间标识,以便后续检查,Servlet定期从线程池中取出线程,检查是否该执行,如果满足执行条件,则执行,如果不满足,就将线程放回线程池。如果不是Web项目,可以使用Java的Timer,同时也维护一个线程池,使用Timer定时去做检查。