Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
c07c01a4
Commit
c07c01a4
authored
Jan 18, 2020
by
Junling Bu
Browse files
feat[litemall-admin-api]: 定时任务备份数据库文件
parent
3487f5d6
Changes
2
Hide whitespace changes
Inline
Side-by-side
litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/job/DbJob.java
0 → 100644
View file @
c07c01a4
package
org.linlinjava.litemall.admin.job
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.linlinjava.litemall.core.system.SystemConfig
;
import
org.linlinjava.litemall.db.domain.LitemallOrder
;
import
org.linlinjava.litemall.db.domain.LitemallOrderGoods
;
import
org.linlinjava.litemall.db.service.*
;
import
org.linlinjava.litemall.db.util.DbUtil
;
import
org.linlinjava.litemall.db.util.OrderUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.env.Environment
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
java.io.File
;
import
java.io.IOException
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
* 数据库定时备份任务
* 在backup文件夹中备份最近七日的数据库文件
*/
@Component
public
class
DbJob
{
private
final
Log
logger
=
LogFactory
.
getLog
(
DbJob
.
class
);
@Autowired
private
Environment
environment
;
/*
* 定时时间是每天凌晨5点。
*/
@Scheduled
(
cron
=
"0 0 5 * * ?"
)
public
void
backup
()
throws
IOException
{
logger
.
info
(
"系统开启定时任务数据库备份"
);
String
user
=
environment
.
getProperty
(
"spring.datasource.druid.username"
);
String
password
=
environment
.
getProperty
(
"spring.datasource.druid.password"
);
String
url
=
environment
.
getProperty
(
"spring.datasource.druid.url"
);
int
index1
=
url
.
indexOf
(
"3306/"
);
int
index2
=
url
.
indexOf
(
"?"
);
String
db
=
url
.
substring
(
index1
+
5
,
index2
);
LocalDate
localDate
=
LocalDate
.
now
();
String
fileName
=
localDate
.
toString
();
File
file
=
new
File
(
"backup"
,
fileName
);
file
.
getParentFile
().
mkdirs
();
file
.
createNewFile
();
// 备份今天数据库
DbUtil
.
backup
(
file
,
user
,
password
,
db
);
// 删除七天前数据库备份文件
LocalDate
before
=
localDate
.
minusDays
(
7
);
File
fileBefore
=
new
File
(
"backup"
,
fileName
);
fileBefore
.
deleteOnExit
();
logger
.
info
(
"系统结束定时任务数据库备份"
);
}
}
litemall-admin-api/src/test/java/org/linlinjava/litemall/admin/DbTest.java
0 → 100644
View file @
c07c01a4
package
org.linlinjava.litemall.admin
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.core.env.Environment
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.test.context.web.WebAppConfiguration
;
import
java.io.File
;
import
java.io.IOException
;
import
java.time.LocalDate
;
@WebAppConfiguration
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
public
class
DbTest
{
@Autowired
private
Environment
environment
;
@Test
public
void
test
()
{
String
user
=
environment
.
getProperty
(
"spring.datasource.druid.username"
);
String
password
=
environment
.
getProperty
(
"spring.datasource.druid.password"
);
String
url
=
environment
.
getProperty
(
"spring.datasource.druid.url"
);
int
index1
=
url
.
indexOf
(
"3306/"
);
int
index2
=
url
.
indexOf
(
"?"
);
String
db
=
url
.
substring
(
index1
+
5
,
index2
);
System
.
out
.
println
(
user
);
System
.
out
.
println
(
password
);
System
.
out
.
println
(
db
);
}
@Test
public
void
testFileCreate
()
throws
IOException
{
LocalDate
localDate
=
LocalDate
.
now
();
String
fileName
=
localDate
.
toString
()
+
".sql"
;
System
.
out
.
println
(
fileName
);
File
file
=
new
File
(
"backup"
,
fileName
);
file
.
getParentFile
().
mkdirs
();
file
.
createNewFile
();
}
@Test
public
void
testFileDelete
()
throws
IOException
{
LocalDate
localDate
=
LocalDate
.
now
();
String
fileName
=
localDate
.
toString
()
+
".sql"
;
System
.
out
.
println
(
fileName
);
File
file
=
new
File
(
"backup"
,
fileName
);
file
.
deleteOnExit
();
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment