Jelajahi Sumber

Adjusted the default concurrency to multiprocessing.cpu_count().

Brian Rosner 16 tahun lalu
induk
melakukan
857067da06
2 mengubah file dengan 4 tambahan dan 1 penghapusan
  1. 3 0
      celery/bin/celeryd.py
  2. 1 1
      celery/conf.py

+ 3 - 0
celery/bin/celeryd.py

@@ -66,6 +66,7 @@ from celery import conf
 from celery import discovery
 from celery.task import discard_all
 from celery.worker import WorkController
+import multiprocessing
 import traceback
 import optparse
 import atexit
@@ -117,6 +118,8 @@ def run_worker(concurrency=DAEMON_CONCURRENCY, daemon=False,
         pidfile=DAEMON_PID_FILE, umask=0, uid=None, gid=None,
         working_directory=None, chroot=None, **kwargs):
     """Run the celery daemon."""
+    if not concurrency:
+        concurrency = multiprocessing.cpu_count()
     if settings.DATABASE_ENGINE == "sqlite3" and concurrency > 1:
         import warnings
         warnings.warn("The sqlite3 database engine doesn't support "

+ 1 - 1
celery/conf.py

@@ -7,7 +7,7 @@ DEFAULT_AMQP_PUBLISHER_ROUTING_KEY = "celery"
 DEFAULT_AMQP_CONSUMER_ROUTING_KEY = "celery"
 DEFAULT_AMQP_CONSUMER_QUEUE = "celery"
 DEFAULT_AMQP_EXCHANGE_TYPE = "direct"
-DEFAULT_DAEMON_CONCURRENCY = 10
+DEFAULT_DAEMON_CONCURRENCY = 0 # defaults to cpu count
 DEFAULT_DAEMON_PID_FILE = "celeryd.pid"
 DEFAULT_LOG_FMT = '[%(asctime)s: %(levelname)s/%(processName)s] %(message)s'
 DEFAULT_DAEMON_LOG_LEVEL = "INFO"