2012-04-13 9 views
0

例: 私は "URLDownload"というタスクを持っています。タスクの機能はインターネットから大きなファイルをダウンロードしています。 私はワーカープロセスを実行していますが、ダウンロードするファイルは約1000です。 クライアントプロセスは1000タスクを作成してGearman Serverに送信するのは簡単です。は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

答えて

2

ワーカーは一度に1つの要求を処理します。いくつかのオプションがあります:

1)複数のワーカーを実行できます(これが最も一般的な方法です)。労働者は処理していないときにpoll()に座っているので、このモデルはうまく機能します。

2)作業者の周りにfork()を実装します。こうすることで、一定数のワーカープロセスを起動できますが、複数のプロセスを監視する必要はありません。

関連する問題