簡體   English   中英

Perl CGI 並發寫入文件

[英]Perl CGI writing to a file concurrently

可以說我有以下幾點:

#!/usr/bin/perl
use strict;
use warnings;
use CGI ":standard";

...Snippet...

open (FH, '>', "file.txt") or die ("ERROR:$!");
print FH "something";
close(FH);

由於它是 Apache 上的 cgi,因此可以同時調用此 cgi 腳本。

  • 並發調用時如何進行寫入和讀取?
    • 沒有鎖或這樣的正確嗎?

如果我想要條件邏輯會發生什么...

  1. 等到 lsof 顯示文件已清除
  2. 從文件中讀取
  3. 與文本連接
  4. 寫入文件

我正在研究使用 lsof 來設置同步文件鎖定,但不想走壞路。 (使用 SQL 可能會更好)。

  1. 是的,您幾乎肯定應該為此使用數據庫。

  2. 如果您真的不想使用數據庫有某種原因,那么至少使用已經存在文件鎖定機制,而不是自己發明。 perlfaq5 中有很多關於這個的問題(和答案)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM