Сводка
Я использую Сервер задач, чтобы порождать серию (одинаковых) запросов, чтобы избежать потребления нескольких тысяч документов.Но большинство запросов прерывается где-то в середине выполнения.Любая идея, почему или как получить больше информации об этом?
Подробно
Основной запрос (XQuery в QConsole) принимает путь ко всем файлам вкаталог (чуть более 9000).Он создает фрагменты из 100 путей и порождает анонимную функцию XQuery.Эта функция вызывает xdmp: eval-javascript и передает ей 100 путей для их обработки.
Оцениваемый код Javascript выполняет некоторые вычисления и в итоге вставляет 2 документа.Ни один из входных файлов не приводит к вставке документа с тем же URI.
Код Javascript регистрирует сообщение «начало фрагмента № 1» (с порядковым номером фрагмента) в начале, затем «конецкусок № 1 ".Начальные сообщения появляются много раз, но конечное сообщение только один раз на фрагмент (к счастью).
Псевдокод
Основной запрос, выполняемый в QConsole (порождает анонимныйфункция, которая сама оценивает Javascript, потому что она сама импортирует некоторые библиотеки SJS):
let $files := ...
for $i in 0 to 92
let $chunk := $files[(($i * 100) + 1) to (($i + 1) * 100)]
return
xdmp:spawn-function(function() {
xdmp:eval-javascript("
declareUpdate();
xdmp.log(`start of chunk ${i}`);
for ( const f of chunk ) {
read file
insert 2 documents
}
xdmp.log(`end of chunk ${i}`);
")
})
В журналах показано что-то вроде:
start of chunk #9
start of chunk #1
start of chunk #5
start of chunk #4
start of chunk #3
end of chunk #5
start of chunk #7
start of chunk #4 --> again
start of chunk #8
start of chunk #9 --> again
end of chunk #9
start of chunk #8 --> again
start of chunk #7 --> again
start of chunk #2
...
Как видите, появляется то же самое стартовое сообщениенесколько раз.
Вопрос
Есть идеи, что может вызвать прерывание / прерывание / перезапуск запроса?Или как я могу найти больше информации?