debian-celery/celery/concurrency/solo.py

31 lines
696 B
Python

# -*- coding: utf-8 -*-
"""
celery.concurrency.solo
~~~~~~~~~~~~~~~~~~~~~~~
Single-threaded pool implementation.
"""
from __future__ import absolute_import
import os
from .base import BasePool, apply_target
__all__ = ['TaskPool']
class TaskPool(BasePool):
"""Solo task pool (blocking, inline, fast)."""
def __init__(self, *args, **kwargs):
super(TaskPool, self).__init__(*args, **kwargs)
self.on_apply = apply_target
def _get_info(self):
return {'max-concurrency': 1,
'processes': [os.getpid()],
'max-tasks-per-child': None,
'put-guarded-by-semaphore': True,
'timeouts': ()}