2010-11-23 32 views
1

我需要构建一个Windows服务器端应用程序,负责接收大文件并处理它们(过程操作大约需要3个小时)。创建一个模拟网络服务器上的FIFO的.NET应用程序

有人能告诉我什么是这样的情况下最好的办法(Windows服务可能),并在这种情况下,如何告诉服务,一个新的文件可用于处理?

PS:过程动作不能并行处理

编辑:寻找一些答案后,我会尝试重组问题。上传部分已经在工作。我的问题是我必须在上传后在文件上运行一个算法。该算法需要花费3个小时才能处理单个文件。我想确保要处理的文件存储在某处(在内存中,在一个数据库中,它在哪里确实无关紧要),并且只在前一个文件完成时才会分析下一个文件。

回答

0

我结束了一个控制台应用程序,它闲置时(不处理任何文件)决定哪个文件应该接下来处理并启动它。

该应用程序被配置为在机器启动时启动。

0

使用一些简单的数据收集来收集每个进程的线程。

例如,您可以像List一样使用,并定义当前正在处理的线索的索引变量。

+0

无论我选择哪一个选项,我都必须使用数据收集来了解哪些文件需要处理。我的问题在于决定是否构建Windows服务,控制台应用程序等。 – dcarneiro 2010-11-23 17:03:39

0

我建议建立一个FTP服务器,也许FileSystemWatcher拿起文件,因为它们被上传和处理它们

http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

+0

目前我有一个ASP文件,可以将文件上传到服务器,并在上传结束时处理它们。问题是如果n个用户决定同时上传n个文件。这个过程是处理器繁重的,所以它应该按顺序进行(如FIFO)。 – dcarneiro 2010-11-23 17:07:09

+1

@Daniel。你想要做什么'FIFO'?网络服务器,图像处理?我不认为你可能已经考虑过了。 上传文件不应该在处理器上沉重,你说的处理器在处理器上是沉重的吗? – TimC 2010-11-23 17:19:24

0

您可能能够使用BITS上传的文件。该API有一个C#封装器here

请注意,对于上传,有一个server-side dependency on IIS

BITS是使用(在下载模式下)从update.microsoft.com自动将所需安全性和其他更新程序放入您的计算机的技术。

相关问题