Я создаю несогласного бота, который ставит в очередь двух человек для игры, он выполняет это, имея идентификатор диссонанса, статус очереди, оппонента в файле JSON. Выглядит так для каждого пользователя:
{
"discordId": "296062947329966080",
"dateAdded": "2019-03-11T02:34:01.303Z",
"queueStatus": "notQueuing",
"opponent": null
},
Когда один человек выстраивается в очередь с помощью команды, он устанавливает «queueStatus» в «Очередь», а когда другой человек находится в очереди, он устанавливает противника этому человеку и сообщает обоим пользователям, что они являются противниками. Проблема в том, что случайно файл JSON будет поврежден при изменении, и что-то подобное произойдет в нижней части:
"dateAdded": "2019-03-11T02:34:01.303Z",
"queueStatus": "notQueuing",
"opponent": null
}
]
}537"
}
]
}
Моя единственная идея состоит в том, что это происходит потому, что два человека, делающие это одновременно, одновременно записывают в файл и повреждают его, и fs.writeFileSync
исправит это, но если я использую fs.writeFileSync
, то все остальные бот disord останавливается и перестает работать, пока не закончит писать, что не очень практичное решение.