如何在基于Netbeans平台的Java应用程序中创建自动备份功能?
没有太多的代码,因为我有点不知道如何开始
我正在尝试创建一个应用程序来备份Derby数据库并存储用户数据。我有备份本身的代码,可以手动运行。我想创建一个功能来检查设置文件,并按照适当的计划(每天、每周、每月)执行备份。我想我可以让它在启动时检查,但如果应用程序正在运行,就会出现问题,我希望它定期检查时间。这个应用程序很可能会连续运行几天
我还想允许用户在预定时间到来时“睡眠”备份几个小时
我可以有一根线。在启动时调用Sleep(),并每X分钟/小时检查一次。同样,如果他们选择睡眠备份。我不确定这是不是最好的办法。我假设任何API调用都可能做同样的事情,但我想知道在处理这样的线程时是否遗漏了一些东西
Netbeans IDE中是否有任何函数/库&;我正在利用的平台,我可以连接到它来帮助我构建这个功能
谢谢
# 1 楼答案
下面是我如何实现它的。我稍微改变了实现的方法,所以这个答案并不完全是这个问题的措辞。我删除了“睡眠”功能,但使用我提供的代码,您可以轻松实现它。我已经部分实现了它,下面将显示代码。它基本上包括创建几个实现Runnable的类。未显示运行备份的实际代码。不管怎样,这都是特定于平台的,所以请按照您的意愿处理它。我们使用的是Derby,所以备份就是这样处理的
我会按班级分类;功能:
数据库备份器。此类处理向用户发出的提示,告知用户上次备份后的时间,并允许用户将提醒休眠X小时。它本身就是一个线程,因此可以在其他地方调用它,也可以在其他地方休眠,因此它不会不断ping数据库以查看上次备份何时运行
数据库备份控制器。这个类,顾名思义,控制着整个过程。从提醒到执行实际备份代码
类DbBackupAction处理本地备份方面。我们在本地备份,然后在另一个类中将该文件发送到异地。 这实现了runnable,因此它将异步处理备份,而不会导致整个程序挂起
BackupRunner处理现场/非现场备份。使用DbBackupAction&&;远程备份操作
RemoteBackupAction处理FTPing异地备份