2012-04-13 55 views
0

例如: 我有一个名为“URLDownload”的任务,任务的功能是从网上下载一个大文件。 现在我有一个工作进程正在运行,但有大约1000个文件需要下载。 客户端进程很容易创建1000个任务,并将它们发送到Gearman服务器。是PYTHON Gearman Worker接受多任务

我的问题是工作进程会做的任务一个接一个,否则将在同一时间接受多任务,

如果工作进程,可以接受多任务,所以如何限制任务工作进程中的-pool-size。

+0

看看我的问题(非常相似) - 基本上,它看起来像没有内置的方式来做到这一点,但如果需要,你可以用beanstalkd来实现它。 http://stackoverflow.com/questions/9550574/a-queuing-system-which-supports-job-batching-e-g-several-jobs-for-1-worker-at – Aurimas 2012-04-13 11:06:09

回答

2

工人一次处理一个请求。你有几个选项:

1)你可以运行多个工人(这是最常用的方法)。当工作人员没有处理时,工人坐在轮询()中,所以这个模型运行得很好。

2)在worker的周围写一个fork()实现。这样,您可以启动一定数量的工作进程,但不必监视多个进程。