处理大量文件 - 任何库或实用程序都有帮助吗?

时间:2009-08-21 10:25:45

标签: .net scalability batch-processing

我想处理大量文件 - 想想视频转码,比如youtube,你必须将所有内容转换为FLV格式或图像处理,你可以从大型RAW文件创建拇指。

是否有任何服务或图书馆可以帮助进行此类处理?我不是指实际的转码,而是组织,启动任务,监控它们并以某种方式处理错误。

理想情况下在Windows上,但linux也可以。

更新:我希望实用程序/ lib能够在更高级别处理此类任务。分发多个流程,以某种方式处理和报告任何故障等。

因此,在转码的情况下,我希望这样的lib /实用程序获取要转码的文件列表,然后它将处理在多个线程/进程中启动转码。您将能够定义在成功完成任务时要执行的操作。如果发生故障,你也可以这样做。

2 个答案:

答案 0 :(得分:0)

命令shell(Windows上的命令提示符,Unix上的sh / bash / csh等)和脚本语言对于匹配某些模式的所有文件都可以执行相同的操作。

例如,在Windows 2000或更高版本上:

for %f in (*.jpg) do ...(例如,调用imagemagick的转换以生成缩略图)

要获得for帮助,请在命令提示符下执行for /?

如果您想利用并行性,例如一次旋转六个以利用所有六个CPU内核,然后您可以使用unix'make'程序,该程序也可在Windows上使用。您必须创建一个指定要执行的操作的Makefile,并使用--jobs switch

执行make

并行化的make方法的替代方法是使用脚本语言。许多脚本语言很容易支持一次运行多个子进程,例如Python的Popen()

答案 1 :(得分:0)

如果我打算这样做,我会创建一个.NET程序来查看传入文件的目录,然后根据它们的文件类型触发http://ffmpeg.org/之类的内容,将视频转换为输出目录或使用类似ImageMagick的图像。

监视进程可能需要一些考虑,尽管应该可以关注已创建的shell任务,或者至少检查输出目录中您希望创建的文件。