def get_task_status(task_id): from frappe.celery_app import get_celery c = get_celery() a = c.AsyncResult(task_id) frappe.local.response["response"] = a.result return {"state": a.state, "progress": 0}
def get_task_status(task_id): from frappe.celery_app import get_celery c = get_celery() a = c.AsyncResult(task_id) frappe.local.response['response'] = a.result return { "state": a.state, "progress": 0 }
def sync_queues(): """notifies workers to monitor newly added sites""" app = get_celery() shortjob_workers, longjob_workers = get_workers(app) if shortjob_workers: for worker in shortjob_workers: sync_worker(app, worker) if longjob_workers: for worker in longjob_workers: sync_worker(app, worker, prefix=LONGJOBS_PREFIX)
def get_running_tasks(): ret = {} app = get_celery() inspect = app.control.inspect() active = inspect.active() if not active: return [] for worker in active: ret[worker] = [] for task in active[worker]: ret[worker].append({ 'id': task['id'], 'name': task['name'], 'routing_key': task['delivery_info']['routing_key'], 'args': task['args'], 'kwargs': task['kwargs'] }) return ret
def get_redis_conn(): "Returns the redis connection that celery would use" app = get_celery() with app.connection() as conn: r = conn.default_channel.client return r
def check_if_workers_online(): app = get_celery() if app.control.inspect().ping(): return True return False