задача сохранения сельдерея в базе данных

Вопрос:

поэтому в моем предыдущем проекте я использовал django-celery но в моем текущем проекте я использую celery потому что djcelery THIS PROJECT IS NO LONGER REQUIRED

Я использую Redis в качестве моего бэкэнд, и я хотел бы отслеживать все выполняемые задачи, чтобы в будущем я мог делать некоторые сравнения, например, среднее время, которое оно использовало для выполнения задачи 6 месяцев назад и Теперь.

Я знаю, что есть приложения, такие как flower но я нахожу его немного багги, и я не уверен, что задачи сохранены или нет. Мне нужно что-то более надежное, даже если это означает создание моей собственной модели и принуждение сельдерея сохранить задачу и параметры, которые я хочу, и прочитать их в админ.

Является ли этот подход правильным или существует встроенный сельдерей, чтобы отслеживать эту информацию?

ура

Лучший ответ:

Я все еще использую django-celery с последними версиями Celery, потому что он хорошо работает (Django 1.6 и 1.7). Он больше не нужен, но вы все еще можете его использовать. Команда управления celerycam проста в использовании и позволяет администраторам контролировать задачи.

Если вы после официального дела делаете, я не вижу лучше, чем документация на сельдерей

django- celerycam похоже, использует средство просмотра событий на сельдересе, чтобы сделать свой материал (код ниже). Однако интеграция с администратором является единственной работой djcelery. Посмотрите на djcelery/admin.py

from __future__ import absolute_import, unicode_literals
from celery.bin import events
from djcelery.app import app
from djcelery.management.base import CeleryCommand

ev = events.events(app=app)

class Command(CeleryCommand):
    """Run the celery curses event viewer."""
    options = (CeleryCommand.options
               + ev.get_options()
               + ev.preload_options)
    help = 'Takes snapshots of the clusters state to the database.'

    def handle(self, *args, **options):
        """Handle the management command."""
        options['camera'] = 'djcelery.snapshot.Camera'
        ev.run(*args, **options)

Оцените статью
TechArks.Ru
Добавить комментарий