Попытка мониторить файлмейкер

Поэтому я пытаюсь следить за тем, работает ли мой скрипт бесконечного цикла создания файлов. Что было бы лучшим способом?

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

Мое текущее решение включает в себя проверку пользовательского интерфейса для подокна «Сценарий приостановлен» в клиенте Filemaker, который немного ненадежен. Есть ли лучшие способы проверить. Filemaker, похоже, не поддерживает такие проверки.

Версия файлового менеджера: 14.0 Pro

РЕДАКТИРОВАТЬ: Может быть, я должен был быть более ясным. Я пытаюсь отслеживать это с помощью инструментов мониторинга, таких как zabbix. Итак, у меня есть внешний (powershell) скрипт, который проверяет файлмейкер.


person mirage    schedule 30.09.2015    source источник
comment
Более подробная информация, вероятно, поможет. Это сценарий FileMaker, сценарий оболочки, сценарий плагина? Фоновый сценарий не является стандартным термином в сообществе FileMaker. Я предполагаю, что вы имеете в виду какой-то сценарий оболочки, который выполняется из сценария FileMaker, но вам нужно быть уверенным, прежде чем предлагать какой-либо совет.   -  person Chuck    schedule 30.09.2015
comment
в основном обычный скрипт для создания файлов, который работает бесконечно. вообще убрать формулировку?   -  person mirage    schedule 01.10.2015
comment
Я бы отредактировал вопрос, чтобы отразить, что это сценарий FileMaker с бесконечным циклом, но этот факт также заставляет меня спросить, почему вы используете сценарий с бесконечным циклом. :) В зависимости от версии FileMaker, которую вы используете, доступны другие инструменты, которые могут выполнить то, для чего раньше требовались сценарии с бесконечным циклом.   -  person Chuck    schedule 01.10.2015
comment
Итак, основная причина в том, что нам нужно синхронизировать записи базы данных с базой данных postgres. Отсюда и сценарий.   -  person mirage    schedule 01.10.2015
comment
С какой версией FileMaker вы работаете? Размещена ли база данных на сервере FileMaker?   -  person Chuck    schedule 01.10.2015
comment
База данных Postgres находится на удаленном сервере (подключение через ODBC), для этого мы используем адаптер Actual postgres. Сервер файлмейкера размещается вместе с клиентом.   -  person mirage    schedule 01.10.2015
comment
Давайте продолжим обсуждение в чате.   -  person mirage    schedule 01.10.2015
comment
Попробуйте написать мне по электронной почте [email protected]. Я думаю, что нам нужно сделать резервную копию шага, чтобы посмотреть на более широкую картину, прежде чем пытаться найти решение.   -  person Chuck    schedule 01.10.2015


Ответы (1)


Если вы настаиваете на продолжении использования скрипта с бесконечным циклом, вот как я бы указал, что скрипт работает в FileMaker 13+:

  • Каждый раз, когда цикл выполняется, обновляйте глобальную переменную до текущей метки времени (Set Variable [ $$_LAST_LOOP_EXECUTED ; Get ( CurrentTimestamp ) ]).
  • Добавьте немного текста в макет. Текст — это то, что будет отображаться, когда цикл скрипта выполнялся недавно.
  • Отредактируйте вычисление «Скрыть объект, когда» (находится на вкладке «Данные» панели «Информация»), чтобы он читался примерно так: Get ( CurrentTimestamp ) - $$_LAST_LOOP_EXECUTED > 60. Это предполагает, что если глобальная переменная не обновлялась в течение последней минуты, сценарий не выполняется.

Если вы не используете хотя бы FileMaker 13, сделать это будет немного сложнее, но возможно с условным форматированием.

Все вышеперечисленное является обходным путем к тому факту, что после запуска сценария, поскольку он предназначен для постоянного выполнения, вы можете остановить его, нажав кнопку «Отмена», когда он приостановлен, что означает, что сценарий не может выполнять какую-либо очистку, например очистка глобальной переменной. Я не пробовал метод, описанный выше, но я предполагаю, что вычисление скрытого атрибута не будет постоянно обновляться. Вероятно, он будет обновляться только при перерисовке макета, например при переходе к другой записи.

Теперь, сказав это, есть лучшие способы заставить скрипт выполняться периодически.

Этот тип сценария лучше всего размещать на сервере, но это может быть невозможно из-за адаптера Actual. Если это так, то я бы предложил исследовать шаг Install OnTimer Script.

person Chuck    schedule 30.09.2015
comment
Мы пытались импортировать по расписанию, однако столкнулись со случайными проблемами с импортом ODBC, скрипт запускается из Filemaker Pro, но не работает по расписанию. - person mirage; 01.10.2015
comment
У меня бывали ситуации, когда мне нужно было что-то делать периодически, но это нельзя было сделать с помощью FileMaker Server. В таких случаях я хранил копию FileMaker Pro на том же компьютере, что и сервер, и периодически запускал ее с помощью Install OnTimer Script. Я бы предложил попробовать это, что означало бы, что вы можете заставить скрипт очистить глобальную переменную (и обновить экран). Однако если вы хотите узнать, выполняется ли сценарий при использовании другого клиента FileMaker, вам потребуются более сложные методы, поскольку глобальные переменные зависят от клиента. - person Chuck; 01.10.2015
comment
Итак, если я правильно понимаю, Install OnTimer Script мне нужно запустить вручную, с клиента, один раз? Тогда он просто подхватывает расписание. - person mirage; 26.10.2015
comment
Шаг сценария Install OnTimer Script принимает в качестве одного из параметров исполняемый сценарий. Таким образом, это будет почти последний шаг любого скрипта, который вы хотите выполнять на регулярной основе. Чтобы запустить его в первый раз, вы должны выполнить сценарий с шагом сценария Perform Script при запуске (используя триггер OnFirstWindowOpen . Возможно, вам также понадобится некоторая логика, чтобы шаг Perform Script выполнялся только на одной машине. - person Chuck; 31.10.2015