Update bất đồng bộ

This commit is contained in:
nguyentrungthat 2025-12-04 10:23:54 +07:00
parent da8c0f418b
commit f71f18393e
2 changed files with 34 additions and 32 deletions

View File

@ -665,7 +665,7 @@ export class WebSocketIo {
action: LineAction, action: LineAction,
options: HandleOptions = {} options: HandleOptions = {}
): Promise<void> { ): Promise<void> {
for (const lineId of lineIds) { lineIds.forEach(async (lineId) => {
try { try {
const line = this.lineMap.get(lineId) const line = this.lineMap.get(lineId)
// console.log(line?.config) // console.log(line?.config)
@ -675,45 +675,45 @@ export class WebSocketIo {
// await sleep(500) // await sleep(500)
await action(line, options) await action(line, options)
} else { } else {
if (this.lineConnecting.includes(lineId)) continue if (!this.lineConnecting.includes(lineId)) {
const linesData = await Line.findBy('id', lineId)
const linesData = await Line.findBy('id', lineId) const stationData = await Station.findBy('id', stationId)
const stationData = await Station.findBy('id', stationId) io.emit('line_connecting', {
io.emit('line_connecting', {
stationId,
lineId,
})
if (linesData && stationData) {
this.lineConnecting.push(lineId)
await this.connectLine(
io,
[linesData],
stationData,
line?.config?.output || '',
line?.config?.inventory || ''
)
this.lineConnecting = this.lineConnecting.filter((el) => el !== lineId)
const lineReconnect = this.lineMap.get(lineId)
if (lineReconnect) {
this.setTimeoutConnect(lineId, lineReconnect)
await sleep(100)
await action(lineReconnect, options)
}
} else {
io.emit('line_disconnected', {
stationId, stationId,
lineId, lineId,
status: 'disconnected',
}) })
io.emit('line_error', { lineId, error: 'Line not connected\r\n', stationId }) if (linesData && stationData) {
this.lineConnecting.push(lineId)
await this.connectLine(
io,
[linesData],
stationData,
line?.config?.output || '',
line?.config?.inventory || ''
)
this.lineConnecting = this.lineConnecting.filter((el) => el !== lineId)
const lineReconnect = this.lineMap.get(lineId)
if (lineReconnect) {
this.setTimeoutConnect(lineId, lineReconnect)
await sleep(100)
await action(lineReconnect, options)
}
} else {
io.emit('line_disconnected', {
stationId,
lineId,
status: 'disconnected',
})
io.emit('line_error', { lineId, error: 'Line not connected\r\n', stationId })
}
} }
} }
} catch (err: any) { } catch (err: any) {
this.lineConnecting = this.lineConnecting.filter((el) => el !== lineId) this.lineConnecting = this.lineConnecting.filter((el) => el !== lineId)
io.emit('line_error', { lineId, error: `\n[ERROR] ${err.message}\n`, stationId }) io.emit('line_error', { lineId, error: `\n[ERROR] ${err.message}\n`, stationId })
} }
} })
} }
private async connectApc(socket: any, apcName: string, station: Station) { private async connectApc(socket: any, apcName: string, station: Station) {

View File

@ -162,7 +162,9 @@ const TerminalCLI: React.FC<TerminalCLIProps> = ({
terminal.current?.write(initContent); terminal.current?.write(initContent);
setIsInit(true); setIsInit(true);
if (!miniSize && !isDisabled) terminal.current?.focus(); if (!miniSize && !isDisabled) terminal.current?.focus();
terminal.current.scrollToBottom(); setTimeout(() => {
if (terminal.current) terminal.current.scrollToBottom();
}, 100);
if (terminal.current.options.theme) { if (terminal.current.options.theme) {
const textColor = const textColor =
localStorage.getItem("terminal-text-color") || "#41ee4a"; localStorage.getItem("terminal-text-color") || "#41ee4a";