Как скопировать задания планировщика Quartz из одной базы данных в другую базу данных - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть существующее задание Quartz в кварцевых таблицах на сервере SQL. Я хотел бы скопировать их в другую базу данных. Есть ли способ скопировать существующее задание Quartz в другую базу данных?

1 Ответ

0 голосов
/ 03 марта 2020

Вам придется делать это вручную, используя миграцию данных или , вы можете использовать API для сериализации / десериализации всех необходимых вам данных. Существует уже созданная утилита:

org.terracotta.quartz.collections.ToolkitDSHolder

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

org.terracotta.quartz.collections.SerializationHelper

Затем создайте пользовательский лог c для преобразования данных, как бы вы ни были sh , Может сделать быстрый GUI, который показывает все данные перед сериализацией, позволяет редактировать их в памяти, чтобы получить желаемый набор данных, затем сериализовать это, и после десериализации вам не нужно больше выполнять преобразование данных, просто вызовите необходимые методы для создания того, что вы хотите.

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

Еще одна вещь Вы можете попробовать использовать XMLSchedulingDataProcessor , он принимает IOStream и документация нечеткая, поэтому мне интересно, если вы используете выходной поток, если он напишет для вас файл xml, который вы можете затем загрузите поток ввода.

Похоже, что есть и другие вещи, которые вы можете сделать, например, использовать удаленное соединение, чтобы загрузить планировщики в одной системе, а затем сделать что-то с ними удаленно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...