12345678910111213141516171819202122 |
- import os
- from celery.concurrency.base import BasePool, apply_target
- class TaskPool(BasePool):
- """Solo task pool (blocking, inline)."""
- def on_start(self):
- self.pid = os.getpid()
- def on_apply(self, target, args, kwargs, callback=None,
- accept_callback=None, **_):
- return apply_target(target, args, kwargs,
- callback, accept_callback, self.pid)
- def _get_info(self):
- return {"max-concurrency": 1,
- "processes": [self.pid],
- "max-tasks-per-child": None,
- "put-guarded-by-semaphore": True,
- "timeouts": ()}
|