Как справиться с выключением MySQL в Matlab?

0

Приветствую всех -

Я пишу программу, которая анализирует и очищает большое количество данных из одной базы данных в другую на Matlab, запрашивая у MySQL. Это будет работать непрерывно, так как новые данные поступают в первую db каждую минуту, очищаются и помещаются в чистую db до того, как появится следующая точка данных. Мне было интересно, как во время этого процесса я мог бы объяснить две вещи..

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

  • Разрешить пользователю убивать программу. Я сузил это до учета ctrl + c kill или создания GUI для этого. Что вы считаете лучшей стратегией?

Заранее благодарим за ваше время и помощь в этом вопросе.

Теги:
data-cleansing

1 ответ

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

Используйте TIMER вместе с графическим интерфейсом.

Сначала создайте графический интерфейс с двумя переключающими кнопками - "пауза" и "отмена". Когда ваша программа запустится, запустите графический интерфейс и запишите свой дескриптор. Передайте этот дескриптор объекту таймера. Всякий раз, когда объект таймера настроен на выполнение, он должен установить свойство Value кнопки "пауза" на 1, а на конец запланированного обслуживания установите его обратно на 0. Между тем, ваша программа, которая запускает, я предполагаю, цикл while, должна проверять на каждой итерации значение кнопки паузы. Если кнопка нажата (то есть ее значение равно 1), программа не должна пытаться обращаться к базе данных. Если кнопка отпущена, программа должна работать как обычно.

Когда программа проверяет нажатую кнопку паузы, она также должна проверить нажатую кнопку "отменить". Если эта кнопка нажата, функция должна break петли и изящно выйти.

В графическом интерфейсе вы также можете установить closeRequestFcn, где у вас открыто диалоговое окно, чтобы спросить, действительно ли пользователь хочет выйти работающей программы базы данных. Если пользователь выбирает "да", скройте GUI (set(guiHandle,'Visible',false)) и нажмите кнопку "Отмена", чтобы программа могла выйти. CloseRequestFcn также будет выполняться, когда вы закроете Matlab, не остановив первую программу. Это может помочь вам избежать случайного закрытия Matlab и, таким образом, случайно убить ваш процесс.

  • 0
    Спасибо за помощь, я попробую это и сообщу об этом позже!
  • 0
    ОК, я застрял в настройке свойства значения моего GUI кнопки Пауза. GUI называется GLEONQAGUI. Я запускаю код ниже, чтобы захватить его дескриптор. >> дескрипторы = guihandles (GLEONQAGUI) ... Теперь, как мне изменить эти дескрипторы, чтобы установить кнопку паузы на максимум или минимум? Я попытался установить (handles.togglebutton1, 'Value', 'Max') безрезультатно. Спасибо за постоянную поддержку.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню