|
|
@@ -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
|
|
|
),
|