def prepare(self, publisher): pub = maybe_promise(publisher) if not pub.connection: pub.connection = self.app.pool.acquire(block=True) if not getattr(pub.connection, "_publisher_chan", None): pub.connection._publisher_chan = pub.connection.channel() pub.revive(pub.connection._publisher_chan) return pub
def install_default_entries(self, schedule): schedule = maybe_promise(schedule) if self.app.conf.CELERY_TASK_RESULT_EXPIRES: schedule.setdefault("celery.backend_cleanup", {"task": "celery.backend_cleanup", "schedule": crontab("0", "4", "*"), "options": {"expires": 12 * 3600}}) return schedule
def __init__(self, schedule=None, logger=None, max_interval=None, app=None, Publisher=None, lazy=False, **kwargs): app = self.app = app_or_default(app) self.data = maybe_promise({} if schedule is None else schedule) self.logger = logger or app.log.get_default_logger(name="celery.beat") self.max_interval = max_interval or \ app.conf.CELERYBEAT_MAX_LOOP_INTERVAL self.Publisher = Publisher or app.amqp.TaskPublisher if not lazy: self.setup_schedule()
def test_prepare(self): from celery.datastructures import LRUCache o = object() R = [{"foo": "bar"}, "celery.datastructures.LRUCache", o] p = routes.prepare(R) self.assertIsInstance(p[0], routes.MapRoute) self.assertIsInstance(maybe_promise(p[1]), LRUCache) self.assertIs(p[2], o) self.assertEqual(routes.prepare(o), [o])
def test_evaluates(self): self.assertEqual(maybe_promise(promise(lambda: 10)), 10) self.assertEqual(maybe_promise(20), 20)
def prepare(self, publisher): return maybe_promise(publisher)