У меня немного t2.nano с одним процессором. Приложение Tomcat опрашивает события календаря из календаря Google, используя Google-OAuth. Иногда Tomcat зависает.
Уверен, что OAuth refre sh зависает, потому что он пытается обновить sh OAuth-токен, который инициирует запрос от Google на мой сервер, чей одиночный ЦП занят блокировкой в Credentials
class.
Есть ли способ обойти это, кроме добавления процессоров? Возможно, какой-нибудь способ вызвать асинхронный c токен refre sh в Google? Или какой-то трюк с таймаутом в моем расписании?
При запуске приложения я делаю это (упрощенная версия)
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.scheduleWithFixedDelay(() -> {
EventFetcher.fetchUpcomingEvents()
}, 0L, 1L, TimeUnit.HOURS);
Код EventFetcher выглядит так:
com.google.api.client.auth.oauth2.Credential credentials = ...;
com.google.api.services.calendarCalendar service = new Calendar.Builder(..., credentials).build();
com.google.api.services.calendar.model.Events events = service.events().list(calendarId).execute();
handleEvents(events);