Tag: django celery

django celery только вызывает 1 из 2 apply_async task

Мне нужно вызвать следующие 2 задачи apply_async: escalate.apply_async((e.id), countdown=3) escalate.apply_async((e.id), countdown=3) Реализация моих задач выглядит так: @app.task def escalate(id, group): escalation_email, created = EscalationEmail.objects.get_or_create() escalation_email.send() return 'sup email sent' Я запускаю работу со следующей командой: celery -A proj worker -l info –concurrency=10 Проблема в том, что, когда я смотрю на рабочего, получается только 1 задание, […]

Определить, доступен ли сельдерей и работает ли он

Я использую Celery с Django для онлайн-игры. Я написал промежуточное программное обеспечение, чтобы проверить, доступен ли и работает ли сельдерей на основе этого ответа: определить, доступен ли сельдерей / работает Мой код выглядит примерно так: from celery.task.control import inspect class CeleryCheckMiddleware(object): def process_request(self, request): insp = inspect().stats() if not insp: return render(…) else: return None […]

AsyncResult (task_id) возвращает состояние «PENDING» даже после запуска задачи

В проекте я пытаюсь опросить task.state долго работающей задачи и обновить ее статус выполнения. Он работал в разработке, но он не будет работать, когда я переведу проект на сервер производства. Я продолжал получать «PENDING», даже если вижу, что задача началась на цветке. Тем не менее, я все еще могу получить результаты, обновленные после завершения задачи, […]

Поделитесь общей функцией утилиты между задачами Celery

У меня есть множество задач в Сельдерей, все связаны с canvas chain . @shared_task(bind=True) def my_task_A(self): try: logger.debug('running task A') do something except Exception: run common cleanup function @shared_task(bind=True) def my_task_B(self): try: logger.debug('running task B') do something else except Exception: run common cleanup function … Все идет нормально. Проблема в том, что я ищу наилучшую […]

Ошибка Django TimeLimitExceeded

Сегодня я получил сообщение об ошибке от Celery, может кто-нибудь объяснить это и, возможно, как я могу исправить тайм-аут? Было бы очень полезно, спасибо. PS Мое сообщение, похоже, отправлено, несмотря на эту ошибку, верно? Ошибка: Task Request to Process with id 65123935-b190-4718-9ed0-fb863359f27f raised exception: 'TimeLimitExceeded(300.0,)' Task was called with args: (<Batch: Batch object>,) kwargs: {}. […]

не может импортировать модель django в задачу сельдерея

У меня есть следующая задача: from __future__ import absolute_import from myproject.celery import app from myapp.models import Entity @app.task def add(entity_id): entity = Entity.objects.get(pk=entity_id) return entity.name Я получаю следующую ошибку: django.core.exceptions.ImproperlyConfigured: запрошенный параметр DEFAULT_INDEX_TABLESPACE, но настройки не настроены. Вы должны либо определить переменную среды DJANGO_SETTINGS_MODULE, либо вызвать параметры settings.configure () перед доступом к настройкам. Если я […]

Обнаружение, когда задача сельдерея и все подзадачи завершены

У меня есть родительская задача, которая порождает произвольное и потенциально довольно большое количество подзадач. Как только родительский и все подзадачи завершены, мне нужно установить флаг в моей базе данных, чтобы указать, что он готов. Как мне лучше это делать? Например: @task() def master_task(foo): foo_obj = Foo.objects.get(id=foo) for bar in foo_obj.bar_set.all(): more_work.delay(bar.id) @task() def more_work(bar): bar_obj […]

NotRegistered исключение при использовании django-сельдерея с redis

Я написал приложение django с именем «task» и добавил его в * INSTALLED_APPS *. Однако, когда я попытался вызвать его в оболочке django, он вызвал исключение NotRegistered. Подробная информация приведена ниже: from task.tasks import add from celery import registry # 'task.tasks.add' is registered like below registry.tasks # 'task.tasks.add': <@task: task.tasks.add> # Call add() r = […]

Как я могу использовать Ajax для проверки состояния и результата задачи django-celery?

В документации Django Celery есть URL-адреса, которые я могу проверить, чтобы получить статус задачи. Каковы эти URL-адреса?

Сельдерей: долгое задание на монолитные задачи и короткие задачи

В моем решении я использую распределенные задачи для мониторинга аппаратных экземпляров в течение определенного периода времени (например, 10 минут). Я должен сделать некоторые вещи, когда: Я начинаю этот сеанс мониторинга Я завершаю сеанс мониторинга (Потенциально) во время сеанса мониторинга Безопасно ли иметь одну задачу для всего сеанса (10 минут) и выполнять все это, или я […]

Python - лучший язык программирования в мире.