Задание на удаление истекло из-за слишком большого количества операторов - PullRequest
0 голосов
/ 20 марта 2020

Я разработал задачу, которая запускает и удаляет операторы из postgresql старше x дней.

@Override
protected TedResult processTask(Void taskData, TedTask task) {
    try {
        statementService.deleteStatements(LocalDate.now()
                .minusDays(deletionDays));
    } catch (Exception e) {
        logger.error("ApplicationError deleting statements", e);
        return TedResult.error(e.getMessage());
    }

    return TedResult.done();
}

Часть statementService.deleteStatements(LocalDate.now().minusDays(deletionDays)); вызывает метод, который обращается к БД и удаляет состояния:

@Modifying
@Transactional
void deleteByIdCreatedDateBefore(LocalDate expiryDate);

Теперь моя проблема в том, что слишком много операторов нужно обработать, я говорю о сотнях тысяч, и время ожидания этой задачи истекло, потому что он не удаляет все операторы в данный момент времени. Поэтому я подумываю переделать логи c удаления, чтобы он удалялся как одно за другим без тайм-аута и сбоя. Как я мог это сделать? Или есть какие-то другие решения, как сделать эту задачу к sh доказательством?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...