Skip to content

Commit

Permalink
fix(backend): possible memory leak
Browse files Browse the repository at this point in the history
  • Loading branch information
tctien342 committed Jan 16, 2025
1 parent b9a94ee commit 95a17f7
Show file tree
Hide file tree
Showing 35 changed files with 175 additions and 137 deletions.
Binary file modified bun.lockb
Binary file not shown.
2 changes: 1 addition & 1 deletion cli.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { defineCommand, runMain } from 'citty'
import { MikroORMInstance } from '@services/mikro-orm.service'
import { MikroORMInstance } from '@/server/services/mikro-orm'

const main = defineCommand({
meta: {
Expand Down
2 changes: 1 addition & 1 deletion commands/client.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Client } from '@/entities/client'
import { EAuthMode } from '@/entities/enum'
import { MikroORMInstance } from '@services/mikro-orm.service'
import { MikroORMInstance } from '@/server/services/mikro-orm'
import { ComfyApi } from '@saintno/comfyui-sdk'
import { defineCommand } from 'citty'
import consola from 'consola'
Expand Down
2 changes: 1 addition & 1 deletion commands/token.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Token } from '@/entities/token'
import { TokenPermission } from '@/entities/token_permission'
import { User } from '@/entities/user'
import { Workflow } from '@/entities/workflow'
import { MikroORMInstance } from '@services/mikro-orm.service'
import { MikroORMInstance } from '@/server/services/mikro-orm'
import { defineCommand } from 'citty'
import consola from 'consola'

Expand Down
2 changes: 1 addition & 1 deletion commands/user.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { EUserRole } from '@/entities/enum'
import { User } from '@/entities/user'
import { MikroORMInstance } from '@services/mikro-orm.service'
import { MikroORMInstance } from '@/server/services/mikro-orm'
import { defineCommand } from 'citty'
import consola from 'consola'

Expand Down
4 changes: 2 additions & 2 deletions entities/client_monitor_gpu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ export class ClientMonitorGpu {
@Property({ type: 'int' })
gpuIdx: number

@Property({ type: 'float', nullable: true })
utlization?: number
@Property({ name: 'utlization', type: 'float', nullable: true })
utilization?: number

@Property({ type: 'float', nullable: true })
temperature?: number
Expand Down
2 changes: 2 additions & 0 deletions entities/enum.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
export enum EAuthMode {
Basic = 'Basic',
Token = 'Token',
Custom = 'Custom',
None = 'None'
}

Expand Down
2 changes: 1 addition & 1 deletion entities/repositories/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { EntityRepository } from '@mikro-orm/core'
import type { User } from '../user'
import { ENotificationType } from '../enum'
import { INotificationData, UserNotification } from '../user_notifications'
import CachingService from '@services/caching.service'
import CachingService from '@/server/services/caching'

export class UserRepository extends EntityRepository<User> {
public async makeNotify(
Expand Down
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@
"@hookform/resolvers": "^3.9.1",
"@langchain/core": "^0.3.25",
"@langchain/openai": "^0.3.16",
"@mikro-orm/cli": "^6.4.1",
"@mikro-orm/core": "^6.4.1",
"@mikro-orm/libsql": "^6.4.1",
"@mikro-orm/reflection": "^6.4.1",
"@mikro-orm/cli": "^6.4.3",
"@mikro-orm/core": "^6.4.3",
"@mikro-orm/libsql": "^6.4.3",
"@mikro-orm/reflection": "^6.4.3",
"@radix-ui/react-accordion": "^1.2.2",
"@radix-ui/react-alert-dialog": "^1.1.3",
"@radix-ui/react-avatar": "^1.1.2",
Expand Down
8 changes: 4 additions & 4 deletions package.prod.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@
"@hookform/resolvers": "^3.9.1",
"@langchain/core": "^0.3.25",
"@langchain/openai": "^0.3.16",
"@mikro-orm/cli": "^6.4.1",
"@mikro-orm/core": "^6.4.1",
"@mikro-orm/libsql": "^6.4.1",
"@mikro-orm/reflection": "^6.4.1",
"@mikro-orm/cli": "^6.4.3",
"@mikro-orm/core": "^6.4.3",
"@mikro-orm/libsql": "^6.4.3",
"@mikro-orm/reflection": "^6.4.3",
"@saintno/comfyui-sdk": "^0.2.40",
"@saintno/needed-tools": "^0.3.5",
"sharp": "^0.33.5",
Expand Down
4 changes: 2 additions & 2 deletions server/context.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { MikroORMInstance } from '@services/mikro-orm.service'
import { MikroORMInstance } from '@/server/services/mikro-orm'
import { verify } from 'jsonwebtoken'
import type { CreateNextContextOptions } from '@trpc/server/adapters/next'
import { User } from '@/entities/user'
import { BackendENV } from '@/env'
import { UserManagement } from '@services/user.service'
import { UserManagement } from '@/server/services/user'
import { Logger } from '@saintno/needed-tools'

const logger = new Logger('tRPC')
Expand Down
2 changes: 1 addition & 1 deletion server/handlers/attachment.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Elysia, { NotFoundError, t } from 'elysia'
import { EnsureMikroORMPlugin } from '../plugins/ensure-mikro-orm.plugin'
import { Attachment } from '@/entities/attachment'
import AttachmentService from '@services/attachment.service'
import AttachmentService from '@/server/services/attachment'
import { AttachmentSchema, AttachmentURLSchema } from '../schemas/attachment'
import { EAttachmentStatus } from '@/entities/enum'
import { EnsureTokenPlugin } from '../plugins/ensure-token-plugin'
Expand Down
2 changes: 1 addition & 1 deletion server/handlers/task.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { ETaskStatus } from '@/entities/enum'
import { QueryOrder } from '@mikro-orm/core'
import { AttachmentSchema, AttachmentURLSchema } from '../schemas/attachment'
import { Attachment } from '@/entities/attachment'
import AttachmentService from '@services/attachment.service'
import AttachmentService from '@/server/services/attachment'
import { EnsureBaseURL } from '../plugins/ensure-baseurl-plugin'

export const TaskPlugin = new Elysia({ prefix: '/task', detail: { tags: ['Task'] } })
Expand Down
2 changes: 1 addition & 1 deletion server/handlers/user.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { User } from '@/entities/user'
import { BackendENV } from '@/env'
import { MikroORMInstance } from '@services/mikro-orm.service'
import { MikroORMInstance } from '@/server/services/mikro-orm'
import Elysia, { t } from 'elysia'

const mikro = MikroORMInstance.getInstance()
Expand Down
2 changes: 1 addition & 1 deletion server/handlers/workflow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import { WorkflowTaskEvent } from '@/entities/workflow_task_event'
import { Trigger } from '@/entities/trigger'
import { Workflow } from '@/entities/workflow'
import { repeat } from 'lodash'
import CachingService from '@services/caching.service'
import CachingService from '@/server/services/caching'

export const WorkflowPlugin = new Elysia({ prefix: '/workflow', detail: { tags: ['Workflow'] } })
.use(EnsureMikroORMPlugin)
Expand Down
2 changes: 1 addition & 1 deletion server/plugins/cleanup-jobs.plugin.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { CleanupService } from '@services/cleanup.service'
import { CleanupService } from '@/server/services/cleanup'
import { CLEANUP_CONFIG } from '../constants/cleanup'
import { cron } from '@elysiajs/cron'
import Elysia from 'elysia'
Expand Down
2 changes: 1 addition & 1 deletion server/plugins/ensure-mikro-orm.plugin.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { MikroORMInstance } from '@services/mikro-orm.service'
import { MikroORMInstance } from '@/server/services/mikro-orm'
import Elysia from 'elysia'

export const EnsureMikroORMPlugin = new Elysia().derive({ as: 'scoped' }, async () => {
Expand Down
2 changes: 1 addition & 1 deletion server/routers/attachment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { z } from 'zod'
import { privateProcedure } from '../procedure'
import { router } from '../trpc'
import { Attachment } from '@/entities/attachment'
import AttachmentService from '@services/attachment.service'
import AttachmentService from '@/server/services/attachment'
import { EAttachmentStatus, EUserRole } from '@/entities/enum'
import { ImageUtil } from '../utils/ImageUtil'
import { ECompressPreset } from '@/constants/enum'
Expand Down
4 changes: 2 additions & 2 deletions server/routers/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ import { z } from 'zod'
import { adminProcedure } from '../procedure'
import { router } from '../trpc'
import { Client } from '@/entities/client'
import { ComfyPoolInstance } from '@services/comfyui.service'
import { ComfyPoolInstance } from '@/server/services/comfyui'
import { observable } from '@trpc/server/observable'
import { ComfyApi, TMonitorEvent } from '@saintno/comfyui-sdk'
import { EAuthMode, EClientAction, EClientStatus, EResourceType, ETriggerBy } from '@/entities/enum'
import { ClientStatusEvent } from '@/entities/client_status_event'
import { ClientActionEvent } from '@/entities/client_action_event'
import { Trigger } from '@/entities/trigger'
import CachingService from '@services/caching.service'
import CachingService from '@/server/services/caching'
import { Resource } from '@/entities/client_resource'
import { Extension } from '@/entities/client_extension'
import { EImportingClient } from '@/constants/enum'
Expand Down
2 changes: 1 addition & 1 deletion server/routers/task.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { router } from '../trpc'
import { WorkflowTask } from '@/entities/workflow_task'
import { EClientStatus, ETaskStatus, ETriggerBy, EUserRole } from '@/entities/enum'
import { observable } from '@trpc/server/observable'
import CachingService from '@services/caching.service'
import CachingService from '@/server/services/caching'

const cacher = CachingService.getInstance()

Expand Down
2 changes: 1 addition & 1 deletion server/routers/token.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { User } from '@/entities/user'
import { v4 } from 'uuid'
import { sign } from 'jsonwebtoken'
import { BackendENV } from '@/env'
import CachingService from '@services/caching.service'
import CachingService from '@/server/services/caching'

export const tokenRouter = router({
list: privateProcedure.query(async ({ ctx }) => {
Expand Down
2 changes: 1 addition & 1 deletion server/routers/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { User } from '@/entities/user'
import { EDeviceStatus, ETaskStatus, EUserRole } from '@/entities/enum'
import { Attachment } from '@/entities/attachment'
import { WorkflowTask } from '@/entities/workflow_task'
import CachingService from '@services/caching.service'
import CachingService from '@/server/services/caching'
import { UserClient } from '@/entities/user_clients'

export const userRouter = router({
Expand Down
2 changes: 1 addition & 1 deletion server/routers/user_notification.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { z } from 'zod'
import { privateProcedure } from '../procedure'
import { router } from '../trpc'
import { UserNotification } from '@/entities/user_notifications'
import CachingService from '@services/caching.service'
import CachingService from '@/server/services/caching'
import { EventEmitter, on } from 'node:events'

export const UserNotificationEE = new EventEmitter()
Expand Down
2 changes: 1 addition & 1 deletion server/routers/watch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { router } from '../trpc'
import { z } from 'zod'
import { observable } from '@trpc/server/observable'
import { ETaskStatus, ETriggerBy, EUserRole } from '@/entities/enum'
import CachingService from '@services/caching.service'
import CachingService from '@/server/services/caching'
import { WorkflowTask } from '@/entities/workflow_task'

export const watchRouter = router({
Expand Down
4 changes: 2 additions & 2 deletions server/routers/workflow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import { z } from 'zod'
import { IMapperOutput, Workflow } from '@/entities/workflow'
import { EventEmitter, on } from 'node:events'
import { observable } from '@trpc/server/observable'
import { ComfyPoolInstance } from '@services/comfyui.service'
import { ComfyPoolInstance } from '@/server/services/comfyui'
import { CallWrapper } from '@saintno/comfyui-sdk'
import { cloneDeep, uniqueId } from 'lodash'
import AttachmentService, { EAttachmentType } from '@services/attachment.service'
import AttachmentService, { EAttachmentType } from '@/server/services/attachment'
import { EUserRole, EValueSelectionType, EValueType, EValueUtilityType, EWorkflowActiveStatus } from '@/entities/enum'
import { Attachment } from '@/entities/attachment'
import { TWorkflowProgressMessage } from '@/types/task'
Expand Down
4 changes: 2 additions & 2 deletions server/routers/workflow_task.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ import {
} from '@/entities/enum'
import { Workflow } from '@/entities/workflow'
import { Trigger } from '@/entities/trigger'
import CachingService from '@services/caching.service'
import CachingService from '@/server/services/caching'
import { v4 } from 'uuid'
import { WorkflowTaskEvent } from '@/entities/workflow_task_event'
import { convertObjectToArrayOfObjects, delay, seed } from '@/utils/tools'
import AttachmentService from '@services/attachment.service'
import AttachmentService from '@/server/services/attachment'
import { Attachment } from '@/entities/attachment'

export const workflowTaskRouter = router({
Expand Down
12 changes: 6 additions & 6 deletions server/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ import cors from 'cors'
import { WebSocketServer } from 'ws'
import type { Socket } from 'net'
import { applyWSSHandler } from '@trpc/server/adapters/ws'
import AttachmentService from '@services/attachment.service'
import CachingService from '@services/caching.service'
import { ComfyPoolInstance } from '@services/comfyui.service'
import { MikroORMInstance } from '@services/mikro-orm.service'
import AttachmentService from '@/server/services/attachment'
import CachingService from '@/server/services/caching'
import { ComfyPoolInstance } from '@/server/services/comfyui'
import { MikroORMInstance } from '@/server/services/mikro-orm'
import { createHTTPHandler } from '@trpc/server/adapters/standalone'

import { convertIMessToRequest } from './utils/request'
import { ElysiaHandler } from './elysia'
import { appRouter } from './routers/_app'
import { createContext } from './context'
import { UserManagement } from '@services/user.service'
import { CleanupService } from '@services/cleanup.service'
import { UserManagement } from '@/server/services/user'
import { CleanupService } from '@/server/services/cleanup'
import { createPrefixedHandler } from './utils/handler'

/**
Expand Down
2 changes: 1 addition & 1 deletion server/schemas/attachment.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { EAttachmentStatus, EValueType } from '@/entities/enum'
import { EAttachmentType } from '@services/attachment.service'
import { EAttachmentType } from '@/server/services/attachment'
import { t } from 'elysia'

export const AttachmentSchema = t.Object({
Expand Down
File renamed without changes.
Loading

0 comments on commit 95a17f7

Please sign in to comment.