Size: a a a

AUG for Developers

2018 February 08

A

Alexandr in AUG for Developers
а синхронно, в основном потоке, эту операцию можно как-то делать?
источник

NU

Nickolay Usanov-Kornilov in AUG for Developers
я могу ошибаться, но индексы в принципе асинхронно работают, как мне кажется. У джиры есть такая довольно таки низкоуровневая штука - DefaultIssueIndexer и в ней выполяются таски по индексированию
источник

NU

Nickolay Usanov-Kornilov in AUG for Developers
а вот ждем ли тот же IssueIndexManager завершения таски - тут я хз
источник

B

Bubyakin in AUG for Developers
надо получить окончание индексирования?
источник

A

Alexandr in AUG for Developers
Bubyakin
надо получить окончание индексирования?
ну хотя бы
источник

A

Alexandr in AUG for Developers
но ведь время возвращается уже по факту, а не плановое, правильно?
источник

A

Alexandr in AUG for Developers
у меня в отдельном потоке выполняется код, который берет заявку и некий JQL и проверяет, подходит ли заявка под этот JQL. так вот, судя по логам, у заявки уже новые значения полей, она не должна подходить под JQL, а все равно подходит
источник

A

Alexandr in AUG for Developers
перед запуском потока я делаю reindex
источник

NU

Nickolay Usanov-Kornilov in AUG for Developers
мне кажется надо смотреть почему у заявки неактуальное состояние в индексе
источник

A

Alexandr in AUG for Developers
а это можно как-то посмотреть?
источник

NU

Nickolay Usanov-Kornilov in AUG for Developers
в смысле это не нормально
источник

NU

Nickolay Usanov-Kornilov in AUG for Developers
Alexandr
а это можно как-то посмотреть?
проверить БП, чтобы при переходах пулялся эвент в конце, проверить через Lucene healthCheck, если есть программные обновления, проверить чтобы там тоже пулялся эвент либо руками индексировать через IssueIndexManager после апдейта
источник

A

Alexandr in AUG for Developers
проблема в том, что мне по одной заявке может пачкой прилететь 4-5 событий одно за другим.и каждое надо обработать с теми значениями полей, которые были именно на этот момент. получается, что при каждом событии надо переиндексировать запись, затем проверить ее на JQL и что-то сделать. я пытаюсь разрулить это последовательным выполнением потоков через ExecutorService, но с индексом проблема, заявка не проходит через JQL (а должна)
источник

A

Alexandr in AUG for Developers
события кидаются в конце постфункций
источник

AM

Alexey Matveev in AUG for Developers
Alexandr
проблема в том, что мне по одной заявке может пачкой прилететь 4-5 событий одно за другим.и каждое надо обработать с теми значениями полей, которые были именно на этот момент. получается, что при каждом событии надо переиндексировать запись, затем проверить ее на JQL и что-то сделать. я пытаюсь разрулить это последовательным выполнением потоков через ExecutorService, но с индексом проблема, заявка не проходит через JQL (а должна)
Мне кажется тут архитектруру решения нужно пересмотреть. Во первых jql это плохо. во вторых в event есть значения полей на момент срабатывания. Нужно их пользовать
источник

A

Alexandr in AUG for Developers
да, согласен, jql это плохо. но это самое гибкое решения для настроек
источник

AM

Alexey Matveev in AUG for Developers
Это не будет работать при нагрузке. Мы уже это проходили. Если у тебя нагрузки нет то ок. Но ты ловишь траблы с индексацией.
источник

A

Alexandr in AUG for Developers
а как вы обошли это?
источник

A

Alexandr in AUG for Developers
чем заменили?
источник

AM

Alexey Matveev in AUG for Developers
java api. Тут зависит от твоих условий которые проверить нужно. jql это вообще большая проблема в коде. Посмотри плагин аутомейшн for  jira. если там использовать jql condition   то на нагрузке jira умирает. Там есть smart fields.Они на api. с ними работает.
источник