47 lines
1.7 KiB
Go
47 lines
1.7 KiB
Go
package console
|
|
|
|
import (
|
|
"github.com/goravel/framework/contracts/console"
|
|
"github.com/goravel/framework/contracts/schedule"
|
|
"github.com/goravel/framework/facades"
|
|
|
|
"goravel/app/console/commands"
|
|
)
|
|
|
|
type Kernel struct {
|
|
}
|
|
|
|
func (kernel *Kernel) Schedule() []schedule.Event {
|
|
return []schedule.Event{
|
|
// 每天凌晨2点执行(北京时间),清理6个月前的日志
|
|
// 北京时间 02:00 = UTC 18:00(前一天)
|
|
facades.Schedule().Command("app:clear-logs").DailyAt("18:00").OnOneServer(),
|
|
// 每天凌晨3点执行(北京时间),清理3天前的分片文件
|
|
// 北京时间 03:00 = UTC 19:00(前一天)
|
|
facades.Schedule().Command("app:clear-chunks").DailyAt("19:00").OnOneServer(),
|
|
// 每天凌晨3点30分执行(UTC 19:30 / 北京时间 03:30), 分析表(更新统计信息)
|
|
facades.Schedule().Command("db:analyze-stats").DailyAt("19:30").OnOneServer(),
|
|
// 每月1号凌晨1点执行(UTC时间),创建下个月的订单分表
|
|
facades.Schedule().Command("order:create-sharding-tables").Monthly().OnOneServer(),
|
|
// 每月1号凌晨1点30分执行(UTC时间),创建下个月的支付记录分表
|
|
facades.Schedule().Command("payment:create-sharding-tables").Monthly().OnOneServer(),
|
|
}
|
|
}
|
|
|
|
func (kernel *Kernel) Commands() []console.Command {
|
|
return []console.Command{
|
|
&commands.ClearLogs{},
|
|
&commands.ClearChunks{},
|
|
&commands.CreateToken{},
|
|
&commands.QueueStats{},
|
|
&commands.QueueClear{},
|
|
&commands.QueuePeek{},
|
|
commands.NewCreateOrderShardingTables(),
|
|
commands.NewCreatePaymentShardingTables(),
|
|
&commands.GenerateTestOrders{},
|
|
&commands.GenerateTestPayments{},
|
|
&commands.AnalyzeStats{},
|
|
&commands.OptimizeTables{},
|
|
}
|
|
}
|