Используйте split и получите значение массива 2nd
:
let str1 = '#/something/default'
let str2 = '#/something/url1/user2'
let str3 = '#/something/url2/url3/user3'
let str4 = '#/something'
console.log(str1.split('/')[2])
console.log(str2.split('/')[2])
console.log(str3.split('/')[2])
// You can use a fallback like this if there is no value:
console.log(str4.split('/')[2] || 'Nothing to see here')
Однако, если у вас настроено регулярное выражение, вы можете использовать это:
const regexp = /^#\/.+?\/(.+?)(\/|$)/
let str1 = '#/something/default'
let str2 = '#/something/url1/user2'
let str3 = '#/something/url2/url3/user3'
let str4 = '#/something'
console.log(str1.match(regexp)[1])
console.log(str2.match(regexp)[1])
console.log(str3.match(regexp)[1])
// You can use a fallback like this if there is no value:
console.log((str4.match(regexp) || [])[1] || 'Nothing to see here')
Если вы используете базу данных для хранения заданий, проверьте trigger_state вашего триггера. Прямо сейчас я вижу похожую проблему (или, по крайней мере, у нее похожие симптомы).
Задание, которое запускается раз в минуту, оставляет триггер в состоянии «ПРИОБРЕТЕНО» и больше никогда не запускается. Как и вы, я ничего не вижу в журнале.
Я также вижу другую причину той же проблемы. Опять же, задание просто останавливается, но триггер не находится в состоянии «ПРИОБРЕТЕНО». Пока я не знаю причину.
Что я знаю до сих пор, так это то, что поток планировщика ожидает свободный рабочий поток. Похоже, что все рабочие потоки ждут семафор, чтобы обновить свое расписание. Я еще не смог получить дамп потока, чтобы проверить, что ожидают рабочие потоки.
м работает кварц 1.6.1 RC1. Смотрите этот отчет об ошибке: http://jira.opensymphony.com/browse/QUARTZ-668
Я думаю, что это то, что я вижу.
Проверить, не генерирует ли какое-либо задание исключение. Поместите свой исполняемый код Job в блокировку try catch и отслеживайте любое исключение для устранения проблемы.