Size: a a a

2021 August 16

💭П

💭 Руслан Прохоров... in rannts
А если специалист, то это ещё год.
источник

💭П

💭 Руслан Прохоров... in rannts
Но он чистой воды экономист
источник

SZ

Sergey Z in rannts
Рискну предположить что кушать всё это время он всё равно хотел
источник

💭П

💭 Руслан Прохоров... in rannts
И до этого мануальное тестирование
источник

💭П

💭 Руслан Прохоров... in rannts
Может он с родителями живёт :-)))
источник

СК

Сергей К in rannts
Рынок же, зачем повышать если не просит 😂
источник

💭П

💭 Руслан Прохоров... in rannts
Я только не понял смысла уйти с ИТ факультета и перевестись на экономический, и продолжать работать тестером. А не пойти в датасатанисты. Это загадка для меня.
источник

СК

Сергей К in rannts
+ сильно экономит средства, подтверждаю, пока жил о многих расходах не догадывался
источник

DV

Dmitry Viskov in rannts
господа, кто-нибудь сталкивался с такой проблемой - вот есть celery и есть rabbitmq.
мы ставим таску в celery с очень большим eta (например 3 часа). ну или в случае ошибки делаем retry таски с этим eta.
rabbit абсолютно с нифига киляет воркер через 30 минут с ошибкой

PRECONDITION_FAILED - delivery acknowledgement on channel 1 timed out. Timeout value used: 1800000 ms. This timeout value can be configured, see consumers doc guide to learn more

в доках реббита нашел вот такое: https://www.rabbitmq.com/consumers.html#acknowledgement-timeout
а еще вот такое на stackoverflow:
источник

DV

Dmitry Viskov in rannts
источник

DV

Dmitry Viskov in rannts
собственно кто-нибудь решал подобное нормальным способом, а не через увеличение consumer_timeout на стороне реббита ?
источник

SZ

Sergey Z in rannts
Я не эксперт, но не представляю какая у реббита власть прибить воркер. Воркер же наверно сам помирает по ему лишь известным причинам
источник

DV

Dmitry Viskov in rannts
Ну да
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Там фишка в том, что воркер вычитывает это сообщение из реббита, но не акнолоджит его до тех пора пока не выполнит. И вот тут и вступает в силу таймаут на реббите
источник

DV

Dmitry Viskov in rannts
Он канал убивает
источник

DV

Dmitry Viskov in rannts
И воркер падает сам
источник

DV

Dmitry Viskov in rannts
ну и да, настройки у меня:
CELERY_ACKS_LATE = True
CELERYD_PREFETCH_MULTIPLIER = 1
источник

DV

Dmitry Viskov in rannts
то есть acknowledge постфактум после завершения задачи
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Могу предложить решение только через передачу в celery меньшего ETA + в параметрах таски (или ещё как) передавать реальный ETA. При запуске таски проверять реальный ETA. Если он не 0 - вычитать из него время, которое прошло с момента добавления таски в очередь (его можно добавить всем таскам через обработчик @before_task_publish.connect). И ставить таску повторно, только с уже уменьшеным "реальным" ETA.
источник

DV

Dmitry Viskov in rannts
звучит страшно 😄
источник