Обновление переменной Pentaho Kettle - PullRequest
1 голос
/ 13 февраля 2020

Проще говоря, проблему можно сформулировать так: «Я устанавливаю переменную среды в одном преобразовании t1.ktr и использую переменную в другом преобразовании t2.ktr. Я хочу обновлять переменную каждые 15 минут, фактически не останавливая t2.ktr т.е. во время выполнения t2.ktr. Как мне этого добиться?

Чтобы дать вам обзор:
Я делаю вызов API api, используя HTTP POST шаг в моем преобразовании (многопоточный Чтобы сделать этот оставшийся вызов API, мне нужно передать определенный токен , срок действия которого истекает через каждые 15 минут. Я получаю этот токен с помощью другого вызова API. Поэтому в одном преобразовании, скажем, token.ktr Я получение токена и его сохранение в переменной окружения TOKEN через шаг Set Variable и в следующем преобразовании позволяет вызвать его rest.ktr Я получаю эту переменную через шаг Get Variable и использую ее в вызове HTTP POST.

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

Позвольте мне Теперь, если необходимы дальнейшие разъяснения.

1 Ответ

2 голосов
/ 13 февраля 2020

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

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ - В моем случае мне нужно сделать несколько HTTP GET, а не просто один длинный, поэтому я могу легко l oop из одного GET в другой и проверить срок действия токена между HTTP GET, вот как я этого добился.

Шаг 1:

Запустите KTR, который имеет Auth API Call. В этом KTR вы также будете использовать шаг формулы, создавая строку DateTime с помощью функции NOW (), которая получит метку времени, когда вы вызвали авторизацию. Этот KTR завершится установкой Auth и этой отметки времени в качестве переменных в родительском задании.

KTR1 - Пример enter image description here

Шаг 2:

В задании вы сначала будете вызывать этот KTR, а сразу после него вы будете использовать шаг Set Variables, я назвал эту переменную Expiration, и здесь вы установите для нее значение OK, сигнализируя о том, что токен не истек. Далее вы позвоните KTR, который делает HTTP GET, используя токен. Результатом этого KTR будет «Успешно» (токен с истекшим сроком действия, успех по HTTP GET, перемещается дальше) или «Сбой» (срок действия токена истек, установите значение «Истек» на «Истек»).

JOB Пример enter image description here

Шаг 3:

После HTTP GET вам необходимо проверить результат, успешно он или нет, или если токен истек посередине, поэтому вам нужно обновить токен и продолжайте l oop, или заканчивайте l oop, если больше не нужны HTTP GET.

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

...