我正在制作一个discord机器人,该机器人将两个人排在一起进行游戏,它通过使他们的不和谐ID,队列状态和JSON文件中的对手来执行此操作。每个用户看起来像这样:
{
"discordId": "296062947329966080",
"dateAdded": "2019-03-11T02:34:01.303Z",
"queueStatus": "notQueuing",
"opponent": null
},
当一个人在一条命令中排队时,它将“ queueStatus”设置为Queuing,而当发现另一个人在Queuing中时,它将该人设置为对手并告诉两个用户他们是对手。问题是更改时随机会损坏JSON文件,并且这样的事情会发生在底部:
"dateAdded": "2019-03-11T02:34:01.303Z",
"queueStatus": "notQueuing",
"opponent": null
}
]
}537"
}
]
}
我唯一的想法是,因为两个人同时执行此操作,同时将其写入文件并破坏了文件,fs.writeFileSync
会对其进行修复,但是如果我使用fs.writeFileSync
,整个不和谐的bot都会暂停并停止工作,直到完成编写为止,这不是一个非常实用的解决方案。
答案 0 :(得分:1)
存储在JSON文件中的数据应迁移到fatal: 'heroku' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
或其他数据库。来自多个作业/源的单个静态文件上的CRUD操作不是可伸缩的解决方案。将此数据存储迁移到数据库将解决这些暂停和停止。
通过freecodecamp.org在Youtube上观看此视频
但是,如果需要或仍然首选JSON文件,我建议使用MongoDB
创建一个用于读取和写入的单个阻塞队列。