Проверьте наличие обновлений статуса с помощью APEX.SERVER.PROCESS - PullRequest
0 голосов
/ 20 апреля 2020

Env: Oracle APEX v5.1.2 с Oracle 12 c R2 DB

У меня есть отчет, основанный на следующих столбцах таблицы в таблице с именем MY_TASK:

TASK_ID (PK),
TASK,
TASK_STATUS (from TASK_CHECKER.task_status)

У меня также есть другая таблица, которую я использую в качестве рабочей таблицы для проверки состояния задания, которое связано с номером TASK_ID из таблицы MY_TASK, с именем TASK_CHECKER, в котором есть столбцы:

TASK_ID (PK),
TASK_STATUS

Исходя из вышеизложенного, у меня есть запланированное задание, которое регулярно проверяет состояние другой таблицы на предмет заданного c TASK_ID, который обновляет значение TASK_STATUS в таблице TASK_CHECKER.

Используя вышеизложенное, когда пользователь запускает приложение Oracle APEX и переходит на страницу отчета MY_TASK, я хотел бы, используя apex.server.process , при запуске соединить две таблицы вместе через TASK_ID и отобразить TASK_STATUS в то время, когда в отчете MY_TASK.

Обратите внимание, что значения TASK_STATUS: WAITING / IN-PROGRESS / SUCCESS или FAIL ED

Так что, если бы у меня было 5 запущенных TASK_ID, я мог бы увидеть при загрузке страницы:

1    TASK_A   SUCCESS
2    TASK_B   ERROR
3    TASK_C   IN-PROGRESS
4    TASK_D   WAITING
5    TASK_E   WAITING

и, возможно, через 10 секунд изменится на:

1    TASK_A   SUCCESS
2    TASK_B   ERROR
3    TASK_C   SUCCESS
4    TASK_D   SUCCESS
5    TASK_E   IN-PROGRESS

Хотелось бы видеть обновления TASK_STATUS в режиме реального времени.

1 Ответ

0 голосов
/ 22 апреля 2020

Я только что проверил, и кажется, что refresh является асин c (он не блокирует экран). Вы должны быть в состоянии сделать что-то вроде этого ...

setInterval(function() {
  apex.region("region_static_id").refresh();
}, 5000);

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

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