имаме общ случай на употреба за нашите приложения, където имаме отдавна съществуващи теми, които могат да обхващат различни приложения, но може също да не съществуват.
Опитваме се да намерим най-добрата практика за шаблона в GCP pub/sub теми, като използваме предоставения Java клиент, където можем да CreateIfNotExists или GetAndCreateIfNotExists.
Текущата реализация, която използваме, е да се опитаме да създадем тема и основно да погълнем изключението, ако то е alreadyExistsException.
@Override
public void createTopicIfNotExists(TopicName topicName) {
try {
this.topicAdminClient.createTopic(topicName);
} catch (AlreadyExistsException e) {
// topic already exists
} catch (Exception e) {
throw e;
}
}
Не мисля, че това е идеално, защото основно използваме изключение като логика, което по своята същност е лоша практика. Ако се опитаме да получим тема, когато тя не съществува, клиентът хвърля изключение DoesNot exist, така че не можем да го направим по друг начин.
Виждал съм неща в github за това, че JS клиентът може да създава автоматично по команда Get, някой знае ли дали това е налично в java клиента.
Вижте тук: https://stackoverflow.com/a/38878368/5385625 Има ли еквивалент в Java клиента.