Я довольно новый для XProc и XPATH, но меня попросили решить следующую проблему:XProc - Приостановка трубопровода и продолжить его, когда определенное событие происходит
Шаг 2 принимает данные через вторичный порт из этап 1. Этап 2 содержит p:for-each
, который сохраняет документ в папке для каждого элемента, который передает каждый для каждого. (Часть A)
Эти документы (скажем, я получаю 6 документов из-за каждого) лежат в одном каталоге и фильтруются по p:directory-list
и в конечном итоге хранятся в одном документе, содержащем весь путь каждого документа. для каждого созданного. (Часть B)
Пока что так хорошо.
Проблема в том, что часть A кажется слишком медленной. Часть B уже пытается прочитать данные. Шаг A хранит, пока каталог все еще пуст. Смысл, у меня проблема с производительностью/синхронизацией.
И теперь возникает вопрос: Возможно ли, чтобы трубопровод подождал и продолжил его, как только произойдет определенное событие?
Вот что я представляю: Шаг B ждет столько, сколько необходимо, до тех пор, пока каталог, в котором находится элемент A, не сохранит данные. Я читал кое-что о dbxml:breakpoint
, но, к сожалению, я не мог найти больше информации, чем имя и краткое описание того, что он, кажется, делает:
Установить точку останова, в случае необходимости, основываясь на состоянии, что приведет к трубопроводу чтобы приостановить работу в точке останова, что может потребовать вмешательства пользователя для продолжения и/или выдачи сообщения.
Было бы здорово, если бы вы знали об этом больше и могли бы привести пример того, как он используется. Это также поможет, если вы знаете обходное решение или другой способ решить эту проблему.
UPDATE:
После поиска Google на половину вечности, я обнаружил, SMIL, которые это табелей, кажется, сделать трюк. Кто-нибудь сталкивается с тем, что вместе с XML/xProc и SMIL?