我正在开发一个应用程序,要求在每天结束时将数据库的内容写入ms-excel文件。我已经编写了用于将内容复制到ms-excel文件中的代码,但是现在如何继续?线程是否被用来检查24小时的完成或者有其他一些机制?请给我一些指导。如何在java中安排一个动作?
1
A
回答
5
如果您需要设施在白天的设定时间运行,您应该考虑Quartz Scheduler。这可能是矫枉过正,但它非常有能力。
例如,您可以使用其CronTrigger
将作业配置为按照由cron表达式定义的计划运行,例如, 0 23 55 * * ?
(或类似的东西)会在每天晚上5点到午夜之间运行你的工作(见examples)。
石英最近被兵马俑收购了,它的未来和财富得到了提升。希望它现在会得到一些真正的积极发展。
1
我认为从设计的角度来看,最好在linux平台上使用crontab或者在windows平台上使用任务调度器。它会保持你的Java程序小而简单。虽然线程等待特定时间的解决方案看起来很简单,但它会增加一个严重问题 - 您必须监视其健康状况。 另外 - 我建议仔细计划你的工作每次运行时写的日志。有成功和不成功的运行日志非常重要。 为这些日志创建单独的文件是有意义的。 另一个需要考虑的案例 - 如果数据库在作业运行的时间内完全不可用,该怎么办?再等24小时是否可以接受?
3
我同意其他人使用类似crontab的东西会更好。但是,如果你不能这样做,我会使用Java 1.5中添加的java.util.concurrent包。你需要的课程是ScheduledThreadPoolExecutor。具体来说,是scheduleAtFixedRate()方法。
相关问题
- 1. 如何在Python中安排一个动作?
- 2. 如何安排一个Java程序每天在Windows中运行?
- 3. 如何在安排活动工作
- 4. 如何安排一个Process.Start在WPF
- 5. 如何在hadoop中安排作业
- 6. 如何在pl/sql中安排工作?
- 7. 如何在Outlook中自动安排宏?
- 8. 如何在一个圆圈中制作java形状动画?
- 9. 如何检查一个动作是否在Java中执行?
- 10. 如何在Android Studio(Java)中执行另一个动作?
- 11. 如何安排多个div并排,一个在另一个之下
- 12. 这个Java排序如何工作?
- 13. 在php中安排工作
- 14. cron如何在内部安排工作?
- 15. 在c#中安排一个事件?
- 16. 如何在Windows中安排一个mysql存储过程?
- 17. 安排一个IntentService
- 18. 如何在每个月的第一个星期几安排SQL代理作业?
- 19. Quartz如何将在线行动安排为预定工作?
- 20. 在JavaScript中创建一个动态重新安排GSource
- 21. 如何排序,并安排在Java组线
- 22. 如何在Java/Anylogic中声明一个排序函数?
- 23. 如何在java中对一个arraylist进行冒泡排序?
- 24. 如何并排安排多个NSView?
- 25. 排除从一个。每个动作
- 26. 如何安排Java程序的执行?
- 27. Java线程是如何安排的?
- 28. 如何安排一个cron作业每一小时运行一次?
- 29. 动画在java中如何工作?
- 30. 如何使用Quartz在java中安排任务?
谢谢!但是,请你给我一个例子吗? :) – Supereme 2010-02-03 02:08:55
我在我原来的答案中包含了一个到JavaDoc的链接,但这里有一些其他资源: (1)http://www.javaconcurrencyinpractice.com/jcip-sample.pdf (2)http:///www.java2s.com/Tutorial/Java/0160__Thread/JDK15providesamechanismtocreateapoolascheduledtask.htm (3)http://book.javanb.com/java-threads-3rd/jthreads3-CHP-11-SECT-4.html – 2010-02-03 03:49:45