Skip to content

Commit 58d8c74

Browse files
committed
fix: 修改定时重启为cron表达式
1 parent 978562b commit 58d8c74

7 files changed

Lines changed: 36 additions & 23 deletions

File tree

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"devDependencies": {
3333
"@karinjs/plugin-puppeteer": "^1.1.2",
3434
"@types/node": "^25.2.3",
35-
"eslint": "^10.0.0",
35+
"eslint": "^9.39.2",
3636
"neostandard": "^0.12.2",
3737
"node-karin": "^1.14.3",
3838
"tsup": "^8.5.1",
@@ -61,6 +61,7 @@
6161
"web": "dist/web.config.js"
6262
},
6363
"dependencies": {
64-
"internal-ip": "^9.0.0"
64+
"internal-ip": "^9.0.0",
65+
"node-cron": "^4.2.1"
6566
}
6667
}

src/app.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
import('node-karin/start')
1+
import('node-karin/start')

src/apps/restart.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { cfg } from '@/config'
2-
import { common, karin, logger, restart } from 'node-karin'
2+
import { plugin } from '@/utils'
3+
import { common, karin, logger, restart, restartDirect } from 'node-karin'
4+
import cron from 'node-cron'
35

46
export const restarts = karin.command(/^#$/, async (e) => {
57
try {
@@ -13,3 +15,18 @@ export const restarts = karin.command(/^#重启$/, async (e) => {
1315
return true
1416
}
1517
}, { name: '重启', perm: 'admin' })
18+
19+
const createRestartTask = () => {
20+
const Cron = cfg.get().restartTask as string
21+
if (Cron && +Cron === 0) return logger.info(`${logger.violet(`[插件:${plugin.name}]`)} [定时重启] 未启用`)
22+
if (!cron.validate(Cron)) return logger.info(`${logger.violet(`[插件:${plugin.name}]`)} [定时重启] Cron表达式错误`)
23+
return karin.task(`[${plugin.name}][定时重启]`, Cron, async () => {
24+
try {
25+
await restartDirect()
26+
} catch (err) {
27+
logger.error(err)
28+
}
29+
}, { log: true })
30+
}
31+
32+
export const restartTask = createRestartTask()

src/config/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class Config {
2222
restart: true,
2323
domain: '',
2424
autoupdate: false,
25-
autorestart: 0,
25+
restartTask: 0,
2626
}
2727

2828
constructor () {

src/config/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ export interface Config {
1212
domain: string
1313
/** 是否自动更新 */
1414
autoupdate: boolean
15-
/** 自动重启延迟时间,单位秒,0表示不自动重启 */
16-
autorestart: number | string
15+
/** 定时重启,0表示不定时重启 */
16+
restartTask: number | string
1717
}

src/index.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
1-
import { logger, restartDirect } from 'node-karin'
1+
import { logger } from 'node-karin'
22
import { plugin } from './utils'
3-
import { cfg } from './config'
43

54
export * from './core'
65

7-
const autorestart = +cfg.get().autorestart
8-
9-
if (autorestart && typeof autorestart === 'number' && autorestart > 0) {
10-
setTimeout(() => {
11-
logger.info(`${logger.violet(`[插件:${plugin.name}]`)} 开始自动重启...`)
12-
restartDirect()
13-
}, autorestart * 1000)
14-
}
15-
166
logger.info(`${logger.violet(`[插件:${plugin.name}]`)} ${logger.green(plugin.version)} 初始化完成~`)

src/web.config.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,19 @@ export default defineConfig({
5858
description: '是否启用自动更新',
5959
defaultSelected: config.autoupdate,
6060
}),
61-
components.input.number('autorestart', {
61+
components.input.string('restartTask', {
6262
color: 'success',
63-
label: '自动重启延迟时间',
64-
description: '自动重启延迟时间,单位秒,0表示不自动重启',
65-
defaultValue: config.autorestart + '',
63+
label: '定时重启',
64+
description: '使用cron表达式设置定时重启Karin,0表示不自动重启',
65+
defaultValue: config.restartTask + '',
66+
rules: [
67+
{
68+
regex: /^(0|(\S+\s){4}\S+)$/,
69+
error: '请输入0或有效的cron表达式'
70+
}
71+
]
6672
})
6773
]
68-
6974
return list
7075
},
7176

0 commit comments

Comments
 (0)