Мой главный вопрос: как вы отслеживаете событие прямого распространения контента Sling?
Пока я нашел эту конечную точку http://localhost: 8080 / libs / sling / distribution / services / agent / publish / queues / endpoint0.-1. json
Вот пример узлов внизу.
{
sling:resourceType: "sling/distribution/service/agent/queue",
state: "BLOCKED",
items: [
"dstrpck-2020--8--6--16--46--1451ddd5-795a-4246-ab7a-d84875c71742_496"
],
itemsCount: "2",
empty: false,
dstrpck-2020--8--6--16--46--1451ddd5-795a-4246-ab7a-d84875c71742_496: {
size: 57,
paths: [
"/content/example/pages/contact/jcr:content"
],
sling:resourceType: "sling/distribution/service/agent/queue/item",
action: "DELETE",
id: "dstrpck-2020--8--6--16--46--1451ddd5-795a-4246-ab7a-d84875c71742_496",
time: "Thu Aug 06 16:46:46 EDT 2020",
state: "ERROR",
userid: "admin",
attempts: "4"
},
dstrpck-2020--8--6--16--46--1451ddd5-795a-4246-ab7a-d84875c71742_497: {
size: 7137,
paths: [
"/content/example/pages/contact",
"/content/example/pages/contact/jcr:content",
"/content/example/pages/contact/jcr:content/nfceefd40-b802-4203-8147-9cb2b2c78c6b",
"/content/example/pages/contact/jcr:content/n3736dc36-9cc3-49d7-a7d4-bf4d94e0ea2f",
"/content/example/pages/contact/jcr:content/n3736dc36-9cc3-49d7-a7d4-bf4d94e0ea2f/n8680c077-cc22-40d3-8989-d86d832a85d1"
],
sling:resourceType: "sling/distribution/service/agent/queue/item",
action: "ADD",
id: "dstrpck-2020--8--6--16--46--1451ddd5-795a-4246-ab7a-d84875c71742_497",
time: "Thu Aug 06 16:46:46 EDT 2020",
state: "ERROR",
userid: "admin",
attempts: "4"
}
}
Эта конечная точка также является сервлетом POST . который, похоже, предназначен для очистки очереди и, возможно, других административных операций. Я не нашел ответов в документации, но мог бы пропустить.
Приведенный выше пример данных кажется подозрительным. itemsCount равно 2, но в массиве items
есть только один элемент. Идентификатор, заканчивающийся на 497, находится в данных .-1.json
, но, похоже, идентификатор отсутствует в массиве. Это может быть важно, потому что обычно я бы не стал кодировать интерфейс для получения всех данных производственной очереди.
Основная проблема, с которой я сталкиваюсь с этой конечной точкой, заключается в том, что данные существуют в течение очень короткого времени, особенно если что-то работает должным образом. Если задание выполнено успешно, очередь быстро очищается от задания. Если это не удается определенное количество раз, данные снова удаляются из очереди.
Мой клиент браузера может опрашивать эту очередь конечных точек в поисках идентификатора, но никогда не видит его, если он работает. Могу увидеть это только на несколько секунд, если возникла проблема. Так что вряд ли он будет полезной конечной точкой для интерфейса. Есть способ лучше?