2011-08-22 98 views
2

我的问题可能很模糊。我正在寻找一些合理的方法来执行我的任务。 我开发了一个网页,用户上传一个文件,用作我在python中开发的代码的输入文件。Python中的多处理器

当通过网页提交输入文件时,它将被保存在临时文件夹中,守护进程将其复制到另一个位置。我想要的是定期查找文件夹中的文件(可以编写守护进程)如果它发现多个文件,它将代码作为单独的作业运行,目录中的输入文件限制为最多5个进程在同一时间,当一个进程完成后,如果文件夹中有文件(按时间顺序),则开始下一个进程。

我知道python中的多处理,但不知道如何实现我想要的,或者我应该去像XGrid的东西来管理我的工作。代码通常需要几个小时到几天才能完成一项工作。但是这些工作是相互独立的。

+0

我认为你不需要*在* Python中进行多处理,而只是同时产生各种Python进程,不是吗? – fortran

+2

我认为不应该问一个问题的主旨是“我如何完成这个一般编程任务?”如果您需要帮助学习如何执行一般编程任务,请从任何挂起的问题开始提出一系列具体问题。请注意,这需要您先阅读文档并尝试开始您的代码。当你挂上某个特定的东西时,问一下具体的问题。 –

+1

我有一个代码,我可以从命令行运行它给inputfile作为参数。在我尝试编写代码来完成我的工作之前,我想要一些指导和指导。我也想确定我是否正朝着正确的方向思考。 – shash

回答

0

我使用SQL表来执行这样的事情,因为如果我不限制它们,我的用户可能会一起启动几十个任务。

当一个新的文件显示出来,一个守护进程在表写它的名字(与其它信息,如大小,日期,时间,用户,allsort ...)

然后又后台程序读取表,获得第一个未执行的任务,并将其标记为已执行。当没有发现任何事情时,它只是等待一分钟左右。

该表格也是执行作业的日志,也可能带有结果。你可以从中得到平均值。

+0

感谢您的建议。我有一个关于作业信息的mysql表。我可以添加一个存储作业状态的列来监视我的作业。非常感谢您的帮助。 – shash