本文整理匯總了Python中celery.signals.worker_process_init.connect方法的典型用法代碼示例。如果您正苦於以下問題:Python worker_process_init.connect方法的具體用法?Python worker_process_init.connect怎麽用?Python worker_process_init.connect使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類celery.signals.worker_process_init
的用法示例。
在下文中一共展示了worker_process_init.connect方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: connect_mongo
# 需要導入模塊: from celery.signals import worker_process_init [as 別名]
# 或者: from celery.signals.worker_process_init import connect [as 別名]
def connect_mongo(**kwargs):
"""Connect to mongo and load modules in each worker process."""
from core.config import celeryimports
from core.yeti_plugins import get_plugins
connect(
yeti_config.mongodb.database,
host=yeti_config.mongodb.host,
port=yeti_config.mongodb.port,
username=yeti_config.mongodb.username,
password=yeti_config.mongodb.password,
connect=False)
celeryimports.loaded_modules = get_plugins()
示例2: init_app
# 需要導入模塊: from celery.signals import worker_process_init [as 別名]
# 或者: from celery.signals.worker_process_init import connect [as 別名]
def init_app(self, app):
self.app = app
new_celery = celery.Celery(
app.import_name,
broker=app.config["CELERY_BROKER_URL"],
backend=app.config["CELERY_RESULT_BACKEND"],
)
# XXX(dcramer): why the hell am I wasting time trying to make Celery work?
self.celery.__dict__.update(vars(new_celery))
self.celery.conf.update(app.config)
worker_process_init.connect(self._worker_process_init)
task_postrun.connect(self._task_postrun)
task_prerun.connect(self._task_prerun)
示例3: cleanup_dead_jobs
# 需要導入模塊: from celery.signals import worker_process_init [as 別名]
# 或者: from celery.signals.worker_process_init import connect [as 別名]
def cleanup_dead_jobs():
"""
This cleans up jobs that have been marked as ran, but are not queue'd in celery. It is meant
to cleanup jobs that have been lost due to a server crash or some other reason a job is
in limbo.
"""
from .models import WooeyJob
# Get active tasks from Celery
inspect = celery_app.control.inspect()
worker_info = inspect.active()
# If we cannot connect to the workers, we do not know if the tasks are running or not, so
# we cannot mark them as dead
if not worker_info:
return
active_tasks = {task['id'] for worker, tasks in six.iteritems(worker_info) for task in tasks}
# find jobs that are marked as running but not present in celery's active tasks
active_jobs = WooeyJob.objects.filter(status=WooeyJob.RUNNING)
to_disable = set()
for job in active_jobs:
if job.celery_id not in active_tasks:
to_disable.add(job.pk)
WooeyJob.objects.filter(pk__in=to_disable).update(status=WooeyJob.FAILED)