x1ongzhu před 1 rokem
rodič
revize
d9a6267078
2 změnil soubory, kde provedl 20 přidání a 3 odebrání
  1. 3 1
      src/task/task.module.ts
  2. 17 2
      src/task/task.service.ts

+ 3 - 1
src/task/task.module.ts

@@ -7,13 +7,15 @@ import { TaskItem } from './entities/task-item.entity'
 import { EventsModule } from '../events/events.module'
 import { DeviceModule } from '../device/device.module'
 import { PhoneListModule } from '../phone-list/phone-list.module'
+import { SysConfigModule } from 'src/sys-config/sys-config.module'
 
 @Module({
     imports: [
         TypeOrmModule.forFeature([Task, TaskItem]),
         forwardRef(() => EventsModule),
         PhoneListModule,
-        DeviceModule
+        DeviceModule,
+        SysConfigModule
     ],
     controllers: [TaskController],
     providers: [TaskService],

+ 17 - 2
src/task/task.service.ts

@@ -10,6 +10,7 @@ import { EventsGateway } from '../events/events.gateway'
 import { randomUUID } from 'crypto'
 import { setTimeout } from 'timers/promises'
 import { DeviceService } from '../device/device.service'
+import { SysConfigService } from '../sys-config/sys-config.service'
 
 @Injectable()
 export class TaskService implements OnModuleInit {
@@ -21,7 +22,8 @@ export class TaskService implements OnModuleInit {
         @Inject(forwardRef(() => EventsGateway))
         private readonly eventsGateway: EventsGateway,
         private readonly phoneListService: PhoneListService,
-        private readonly deviceService: DeviceService
+        private readonly deviceService: DeviceService,
+        private readonly sysConfigService: SysConfigService
     ) {}
 
     onModuleInit() {
@@ -90,6 +92,18 @@ export class TaskService implements OnModuleInit {
                     return
                 }
 
+                task = await this.taskRepository.findOneBy({ id: task.id })
+                let rcsWait = 2000
+                if (task.rcsWait > 0) {
+                    rcsWait = task.rcsWait
+                } else {
+                    try {
+                        rcsWait = await this.sysConfigService.getNumber('rcs_wait', 2000)
+                    } catch (error) {
+                        Logger.error('Error getting rcs wait time', error, 'RcsService')
+                    }
+                }
+
                 let taskItems = await this.taskItemRepository.find({
                     where: { taskId: task.id, status: TaskItemStatus.IDLE },
                     take: 5
@@ -120,12 +134,13 @@ export class TaskService implements OnModuleInit {
                 await this.deviceService.setBusy(device.id, true)
                 await this.taskItemRepository.save(taskItems)
                 Logger.log(`Send task to device ${device.id}(${device.model})`, 'RcsService')
+
                 Promise.race([
                     this.eventsGateway.sendForResult(
                         {
                             id: randomUUID(),
                             action: 'task',
-                            data: taskItems
+                            data: { config: { rcsWait }, tasks: taskItems }
                         },
                         device.socketId
                     ),