修复服务启动时定时删除日志失效

This commit is contained in:
whyour 2023-07-08 20:58:36 +08:00
parent 3aa112e373
commit b0f3b51736
9 changed files with 15 additions and 15 deletions

View File

@ -44,7 +44,7 @@ export interface LoginLogInfo {
export type AuthModelInfo = SystemConfigInfo & Partial<NotificationInfo> & LoginLogInfo;
interface AuthInstance extends Model<AuthInfo, AuthInfo>, AuthInfo { }
export interface AuthInstance extends Model<AuthInfo, AuthInfo>, AuthInfo { }
export const AuthModel = sequelize.define<AuthInstance>('Auth', {
ip: DataTypes.STRING,
type: DataTypes.STRING,

View File

@ -49,7 +49,7 @@ export enum CrontabStatus {
'disabled',
}
interface CronInstance extends Model<Crontab, Crontab>, Crontab {}
export interface CronInstance extends Model<Crontab, Crontab>, Crontab {}
export const CrontabModel = sequelize.define<CronInstance>('Crontab', {
name: {
unique: 'compositeIndex',

View File

@ -39,7 +39,7 @@ export class CrontabView {
}
}
interface CronViewInstance
export interface CronViewInstance
extends Model<CrontabView, CrontabView>,
CrontabView {}
export const CrontabViewModel = sequelize.define<CronViewInstance>(

View File

@ -52,7 +52,7 @@ export enum unInstallDependenceCommandTypes {
'apk del',
}
interface DependenceInstance
export interface DependenceInstance
extends Model<Dependence, Dependence>,
Dependence {}
export const DependenceModel = sequelize.define<DependenceInstance>(

View File

@ -34,7 +34,7 @@ export const initPosition = 4500000000000000;
export const stepPosition = 10000000000;
export const minPosition = 100;
interface EnvInstance extends Model<Env, Env>, Env {}
export interface EnvInstance extends Model<Env, Env>, Env {}
export const EnvModel = sequelize.define<EnvInstance>('Env', {
value: { type: DataTypes.STRING, unique: 'compositeIndex' },
timestamp: DataTypes.STRING,

View File

@ -26,7 +26,7 @@ export interface AppToken {
export type AppScope = 'envs' | 'crons' | 'configs' | 'scripts' | 'logs';
interface AppInstance extends Model<App, App>, App {}
export interface AppInstance extends Model<App, App>, App {}
export const AppModel = sequelize.define<AppInstance>('App', {
name: { type: DataTypes.STRING, unique: 'name' },
scopes: DataTypes.JSON,

View File

@ -70,7 +70,7 @@ export enum SubscriptionStatus {
'queued',
}
interface SubscriptionInstance
export interface SubscriptionInstance
extends Model<Subscription, Subscription>,
Subscription {}
export const SubscriptionModel = sequelize.define<SubscriptionInstance>(

View File

@ -30,15 +30,15 @@ export default async () => {
// 运行删除日志任务
const data = await systemService.getSystemConfig();
if (data && data.info && data.info.frequency) {
if (data && data.info && data.info.logRemoveFrequency) {
const rmlogCron = {
id: data.id,
id: data.id as number,
name: '删除日志',
command: `ql rmlog ${data.info.frequency}`,
command: `ql rmlog ${data.info.logRemoveFrequency}`,
};
await scheduleService.cancelIntervalTask(rmlogCron);
scheduleService.createIntervalTask(rmlogCron, {
days: data.info.frequency,
days: data.info.logRemoveFrequency,
});
}

View File

@ -2,7 +2,7 @@ import { Service, Inject } from 'typedi';
import winston from 'winston';
import config from '../config';
import * as fs from 'fs';
import { AuthDataType, AuthInfo, AuthModel, AuthModelInfo } from '../data/auth';
import { AuthDataType, AuthInfo, AuthInstance, AuthModel, AuthModelInfo } from '../data/auth';
import { NotificationInfo } from '../data/notify';
import NotificationService from './notify';
import ScheduleService, { TaskCallbacks } from './schedule';
@ -34,15 +34,15 @@ export default class SystemService {
return doc || {};
}
private async updateAuthDb(payload: AuthInfo): Promise<any> {
private async updateAuthDb(payload: AuthInfo): Promise<AuthInstance> {
await AuthModel.upsert({ ...payload });
const doc = await this.getDb({ type: payload.type });
return doc;
}
public async getDb(query: any): Promise<any> {
public async getDb(query: any): Promise<AuthInstance> {
const doc: any = await AuthModel.findOne({ where: { ...query } });
return doc && (doc.get({ plain: true }) as any);
return doc && (doc.get({ plain: true }));
}
public async updateNotificationMode(notificationInfo: NotificationInfo) {