Ошибка сохранения данных базы данных Django за пределами django

У меня есть следующая проблема: Я использую структуру Django. Одна из частей в системе (не-django) записывает в базу данных в той же базе данных, что и django. Я хочу иметь сигнал, когда объект сохраняется. Это объект модели django, но не сохраняется через django, но непосредственно в базе данных mysql.

Есть ли способ, которым django может наблюдать save-actions в своей базе данных, когда он не сохраняется django?

Самый простой способ: создать Api, и пусть действие сохранения будет проходить через этот api. Сигнал сохранения может превышать значение django по умолчанию. (но это зависит от некоторой работы внешних ... так что не предпочтительный маршрут ... для будущего развития это обязательно).

Другой вариант - внедрить сельдерей и создать задачу, которая часто смотрит, не осталось ли у одного из сохраненных объектов ..... (также я оставляю некоторые недоумения, я думаю, чтобы это произошло и работало)

Но может быть проще ... для меня неизвестно? Я видел решения django watchdog для файловых систем ... не для баз данных (возможно, потому, что django имеет эту сборку ... когда правильно выполняется через django)

чтобы скомпрометировать его: я тестирую и развиваю локально с помощью sqlite .... но сигнал сохранения, который я могу поставить в свои тесты, не требуя, чтобы эта локальная работа ... пока она работает в mysql, я счастлив.

0
nl ja de

2 ответы

В конце концов, я написал api, который может быть вызван модулем thirdparty. Я доставил код для входа в django, используя c-code для этого api и вызвал GET этого api. (с использованием рамки django rest). Этот api просто сохраняет объект (идентификатор, указанный в URL-адресе), а оттуда - по умолчанию django. Единственное, что нужно сделать третьей стороне - это построить мой код, чтобы вызвать api.

Может быть, не лучшее решение, но лучше всего реализовать для моей проблемы ....

0
добавлено

Вы можете попробовать это решение:

  1. Создайте новую таблицу « django_watch » с одним столбцом « object_id » (добавьте другие столбцы, например «created_datetime» и т. д. в соответствии с вашими стандартами); </р>

  2. Предположим, что ваша основная таблица - это < объект . Добавьте MySQL trigger . для события INSERT в этой таблице.

  3. Вы должны добавить дополнительный запрос вставки внутри триггера, чтобы вставить object_id в таблицу django_watch .

  4. Теперь у вас может быть cronjob, который будет обрабатывать новую таблицу django_watch '(для обновления в объектах Django) и выполнять необходимые действия. Вы можете запускать этот cronjob непрерывно с некоторой задержкой в ​​1 минуту (до вас).

0
добавлено
спасибо за эту опцию. Приятно знать, что я могу установить триггер в mysql, однако ... почему бы не позволить cronjob напрямую смотреть на таблицу? Я сейчас смотрю на сельдерей ... Я узнал, что задания на каннаб не могут быть запланированы ниже 1 минуты (помимо использования некоторых трюков). К счастью, сельдерей имеет другие объекты, кроме cronjob для коротких задач ... дополнительные настройки в mysql, и cronjob ... чувствует, что мне нравится делать администрирование сложным ...
добавлено автор michel.iamit, источник
Привет @ michel.iamit, пожалуйста, дайте мне знать, если это поможет.
добавлено автор OMG, источник
Django
Django
1 931 участник(ов)

Полезная информация и правила: https://github.com/django-ru/faq Вакансии и резюме: @django_jobs Пофлудить идём сюда: @django_flood Статистика чата: combot.org/chat/-1001063854692

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

django_jobs
django_jobs
916 участник(ов)

Поиск и предложения работы (Django) Правила: https://t.me/django_jobs/4 Вакансии с тегом #job улетают в канал @django_jobs_board Вопросы к @amureki Основной чат @pydjango

Django
Django
733 участник(ов)

Веб-фреймворк для перфекционистов с дедлайнами. Наша группа на vk: https://vk.com/django_framework В Discord: https://discord.me/django_framework по всем вопросам @MechanisM

django flood
django flood
71 участник(ов)

Флудилка джангистов Пока без правил