|
@@ -43,8 +43,7 @@ export class TaskService implements OnModuleInit {
|
|
|
private readonly sysConfigService: SysConfigService,
|
|
private readonly sysConfigService: SysConfigService,
|
|
|
private readonly balanceService: BalanceService,
|
|
private readonly balanceService: BalanceService,
|
|
|
private readonly userService: UsersService
|
|
private readonly userService: UsersService
|
|
|
- ) {
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ) {}
|
|
|
|
|
|
|
|
onModuleInit() {
|
|
onModuleInit() {
|
|
|
this.lock.acquire('dispatchTask', async () => {
|
|
this.lock.acquire('dispatchTask', async () => {
|
|
@@ -63,23 +62,16 @@ export class TaskService implements OnModuleInit {
|
|
|
private taskControllers: { [key: number]: AbortController } = {}
|
|
private taskControllers: { [key: number]: AbortController } = {}
|
|
|
|
|
|
|
|
async findAllTask(req: PageRequest<Task>): Promise<Pagination<Task>> {
|
|
async findAllTask(req: PageRequest<Task>): Promise<Pagination<Task>> {
|
|
|
- console.log(
|
|
|
|
|
- JSON.stringify({
|
|
|
|
|
- where: {
|
|
|
|
|
- name: In(['asdf'])
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
- )
|
|
|
|
|
const page = await paginate<Task>(this.taskRepository, req.page, req.search)
|
|
const page = await paginate<Task>(this.taskRepository, req.page, req.search)
|
|
|
if (page.items.length !== 0) {
|
|
if (page.items.length !== 0) {
|
|
|
let items = page.items
|
|
let items = page.items
|
|
|
- const userIds = items.map(item => item.userId)
|
|
|
|
|
|
|
+ const userIds = items.map((item) => item.userId)
|
|
|
const users = await this.userRepository.findBy({
|
|
const users = await this.userRepository.findBy({
|
|
|
id: In(userIds)
|
|
id: In(userIds)
|
|
|
})
|
|
})
|
|
|
for (let i = 0; i < items.length; i++) {
|
|
for (let i = 0; i < items.length; i++) {
|
|
|
const item = items[i]
|
|
const item = items[i]
|
|
|
- const user = users.find(user => user.id === item.userId)
|
|
|
|
|
|
|
+ const user = users.find((user) => user.id === item.userId)
|
|
|
if (user) {
|
|
if (user) {
|
|
|
item.userName = user.username
|
|
item.userName = user.username
|
|
|
}
|
|
}
|
|
@@ -145,7 +137,8 @@ export class TaskService implements OnModuleInit {
|
|
|
cleanCount: data.cleanCount,
|
|
cleanCount: data.cleanCount,
|
|
|
requestNumberInterval: data.requestNumberInterval,
|
|
requestNumberInterval: data.requestNumberInterval,
|
|
|
checkConnection: data.checkConnection,
|
|
checkConnection: data.checkConnection,
|
|
|
- channels: data.channels
|
|
|
|
|
|
|
+ channels: data.channels,
|
|
|
|
|
+ matchDevice: data.matchDevice
|
|
|
}
|
|
}
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
@@ -197,10 +190,13 @@ export class TaskService implements OnModuleInit {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
- await this.taskRepository.update({ id }, {
|
|
|
|
|
- status: num > 0 ? TaskStatus.QUEUED : TaskStatus.PENDING,
|
|
|
|
|
- startedAt: new Date()
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ await this.taskRepository.update(
|
|
|
|
|
+ { id },
|
|
|
|
|
+ {
|
|
|
|
|
+ status: num > 0 ? TaskStatus.QUEUED : TaskStatus.PENDING,
|
|
|
|
|
+ startedAt: new Date()
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
async pauseTask(id: number): Promise<void> {
|
|
async pauseTask(id: number): Promise<void> {
|
|
@@ -452,7 +448,7 @@ export class TaskService implements OnModuleInit {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
.catch(async (e) => {
|
|
.catch(async (e) => {
|
|
|
- Logger.error('Error running task', e.stack, this.TAG)
|
|
|
|
|
|
|
+ Logger.error('Error running task 1', e.stack, this.TAG)
|
|
|
await this.updateTaskItemStatus(
|
|
await this.updateTaskItemStatus(
|
|
|
taskItems.map((i) => i.id),
|
|
taskItems.map((i) => i.id),
|
|
|
TaskItemStatus.IDLE
|
|
TaskItemStatus.IDLE
|
|
@@ -460,7 +456,7 @@ export class TaskService implements OnModuleInit {
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
} catch (e) {
|
|
} catch (e) {
|
|
|
- Logger.error('Error running task', e.stack, this.TAG)
|
|
|
|
|
|
|
+ Logger.error('Error running task 2', e.stack, this.TAG)
|
|
|
task.status = TaskStatus.ERROR
|
|
task.status = TaskStatus.ERROR
|
|
|
task.error = e.message
|
|
task.error = e.message
|
|
|
await this.taskRepository.save(task)
|
|
await this.taskRepository.save(task)
|
|
@@ -564,7 +560,7 @@ export class TaskService implements OnModuleInit {
|
|
|
return Promise.reject(new Error('timeout waiting for response'))
|
|
return Promise.reject(new Error('timeout waiting for response'))
|
|
|
})
|
|
})
|
|
|
])
|
|
])
|
|
|
- Logger.log(
|
|
|
|
|
|
|
+ Logger.log(
|
|
|
`Task completed: ${res.success.length} success, ${res.fail.length} fail, ${
|
|
`Task completed: ${res.success.length} success, ${res.fail.length} fail, ${
|
|
|
res.retry?.length || 0
|
|
res.retry?.length || 0
|
|
|
} retry`,
|
|
} retry`,
|
|
@@ -580,7 +576,7 @@ export class TaskService implements OnModuleInit {
|
|
|
await this.updateTaskItemStatus(res.retry, TaskItemStatus.IDLE)
|
|
await this.updateTaskItemStatus(res.retry, TaskItemStatus.IDLE)
|
|
|
}
|
|
}
|
|
|
} catch (e) {
|
|
} catch (e) {
|
|
|
- Logger.error('Error running task', e.stack, this.TAG)
|
|
|
|
|
|
|
+ Logger.error('Error running task 3', e.stack, this.TAG)
|
|
|
await this.updateTaskItemStatus(
|
|
await this.updateTaskItemStatus(
|
|
|
items.map((i) => i.id),
|
|
items.map((i) => i.id),
|
|
|
TaskItemStatus.IDLE
|
|
TaskItemStatus.IDLE
|