对writeFileSync的调用正在随机生成一个0字节的文件。
目的是将json写入文件,然后在每次json更改时重写它。并在启动时加载json。但是文件保持变为0字节长,大部分时间它都可以工作,然后几天就变成0字节。
代码:LiveScript https://github.com/audreyt/ethercalc/blob/master/src/db.ls 或转换为JavaScript https://github.com/audreyt/ethercalc/blob/master/db.js
try
db.DB = JSON.parse do
require \fs .readFileSync "#dataDir/dump.json" \utf8
console.log "==> Restored previous session from JSON file"
db.DB = {} if db.DB is true
Commands =
bgsave: (cb) ->
fs.writeFileSync do
"#dataDir/dump.json"
JSON.stringify db.DB,,2
\utf8
cb?!
记录等:
if fs.existsSync "#dataDir/dump.json" #check file exists - throws exception if exists and read fails
#console.log "==> Found previous JSON file"
try
db.DB = JSON.parse do
require \fs .readFileSync "#dataDir/dump.json" \utf8
console.log "==> Restored previous session from JSON file"
db.DB = {} if db.DB is true
catch
console.log "dump file locked, exit process"
process.exit!
else
console.log "No existing dump file - #dataDir/dump.json "
Commands =
bgsave: (cb) ->
fs.writeFileSync do
"#dataDir/dump.json"
JSON.stringify db.DB,,2
\utf8
cb?!
关于如何调试或重新构建的建议非常受欢迎。
注意: - 解决方法 - 当我每24小时添加一次自动重启时,它解决了问题 - 当它变为0字节时,代码打印"转储文件被锁定,退出进程" - 代码在openshift服务器上运行 - 当服务器自动重启时,看起来变为0字节 - 不是手动重启,而是当服务器决定触发重启时