擅长:python、mysql、java
<p>项目1:</p>
<pre><code>Foreach file in input directory
INSERT IGNORE into database the MD5 of the file
"mv" the file to the archive directory
</code></pre>
<p>程序2,一个“保持活力”的程序。在</p>
<p>它每分钟通过<code>cron</code>运行并尝试启动程序1,但如果程序1已经在运行,则不要启动它。在</p>
<p>注意事项:</p>
<ul>
<li>“mv”和“cron”假设为Unix。如果使用Windows,请执行相应的操作。在</li>
<li>“mv”是原子的,因此该文件将位于另一个目录的一个目录中;无需知道它是否“已处理”。(所以,我想知道为什么你甚至有一个数据库表??)在</li>
<li>既然<code>INSERT</code>和{<cd3>}不能实际地“原子”地完成,所以我的计划是安全的:<code>IGNORE</code>。在</li>
<li>“is it running”可以通过多种方式处理,在程序1或程序2中。在</li>
<li>您可以向包含md5的表中添加时间戳和/或文件名;无论您喜欢什么。在</li>
<li>由于在一个目录中包含10K个文件不是一个好主意,所以您应该使用我所设想的一对平面目录之外的东西。在</li>
</ul>
<p>你每3秒只能得到1个文件。这不是一个沉重的负担,除非文件是巨大的。然后它就变成了I/O问题,而不是数据库问题。在</p>
<p>我有一种感觉,要么我错过了一个隐藏的“要求”,要么你是格外偏执。我真不明白你要怎么处理这些文件。在</p>