diff --git a/django_q/conf.py b/django_q/conf.py index 9c57b56..30460d0 100644 --- a/django_q/conf.py +++ b/django_q/conf.py @@ -74,6 +74,9 @@ class Conf(object): # Sets the number of processors for each worker, defaults to all. CPU_AFFINITY = conf.get('cpu_affinity', 0) + # Global sync option to for debugging + SYNC = conf.get('sync', False) + # Use the secret key for package signing # Django itself should raise an error if it's not configured SECRET_KEY = settings.SECRET_KEY diff --git a/django_q/tasks.py b/django_q/tasks.py index ebbc318..b9c7360 100644 --- a/django_q/tasks.py +++ b/django_q/tasks.py @@ -39,7 +39,7 @@ def async(func, *args, **kwargs): task['save'] = save # sign it pack = signing.SignedPackage.dumps(task) - if sync: + if sync or Conf.SYNC: return _sync(pack) # push it redis.rpush(list_key, pack) diff --git a/docs/install.rst b/docs/install.rst index 5f2ff5a..87c337d 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -1,5 +1,6 @@ Installation ============ +.. py:currentmodule:: django_q - Install the latest version with pip:: @@ -93,6 +94,12 @@ Limits the amount of successful tasks saved to Django. .. _queue_limit: +sync +~~~~ + +When set to ``True`` this configuration option forces all :func:`async` calls to be run with ``sync=True``. +Effectively making everything synchronous. Useful for testing. Defaults to ``False``. + queue_limit ~~~~~~~~~~~