小编and*_*ter的帖子

如何在异步写入文件时锁定文件

我有两个节点线程在运行,一个观察目录以使用文件,另一个负责将文件写入给定目录。

通常,它们不会在同一目录上运行,但对于我正在处理的边缘情况,它们将是。

似乎消费应用程序在文件被完全写入之前抓取文件,导致文件损坏。

有没有办法锁定文件直到写入完成?我已经研究过这个lockfile模块,但不幸的是我不相信它适用于这个特定的应用程序。

======

把完整的代码放在这里远远没有意义,但它的要点是:

  1. 应用程序脱离观察者和听众

听众:

  • 监听添加到数据库的文件,使用导出 fs.writeFile

观察者:

  • watcher 用于chokidar跟踪每个被监视目录中添加的文件
  • 当 foundfs.access被调用以确保我们可以访问该文件
    • fs.access 似乎对正在写入的文件无动于衷
  • 该文件通过消费fs.createReadStream然后发送到服务器
    • 文件流是必要的,因为我们需要文件哈希

在这种情况下,文件被导出到被监视的目录,然后被监视进程重新导入。

fs node.js

8
推荐指数
2
解决办法
2万
查看次数

简单的PHP IF语句无法正确评估

这个PHP IF语句总是导致'false',我无法弄清楚原因.任何帮助是极大的赞赏.

其中$ i作为0传入,$ j作为4传入(这些数字在POST中验证)

$i = $_POST['entry'];
$j = $_POST['j'];

function tabs() {
  if ($i < $j)
    echo 'i is less than j';
  else
    echo 'false';
};
Run Code Online (Sandbox Code Playgroud)

php

1
推荐指数
1
解决办法
252
查看次数

标签 统计

fs ×1

node.js ×1

php ×1