Size: a a a

2020 June 25

ВГ

Владимир Гришин... in Go-go!
+ отлов падения воркера
источник

ЛА

Локоть Анатолий... in Go-go!
В aws sqs по дефолту работает политика, что если кто-то вычитал задачу, то она "обработана" и никто ее больше не видит, однако через таймаут она снова появится в очереди и получивший ее воркер в конце своего процессинга должен вручную задачу из очереди удалить
источник

AS

Alexander Shavelev in Go-go!
Eugene Koshevoy
в таком кейсе нужно ack делать после успешного выполнения задачи. Если приложение умерло, то задача остается в очереди
само собой, но если умерли до ack - то нужны "правила" по которым задачу можно снова давать в работу
источник

ВГ

Владимир Гришин... in Go-go!
Alexander Shavelev
само собой, но если умерли до ack - то нужны "правила" по которым задачу можно снова давать в работу
это в любом случае нужно, при любой архитектуре.
источник

ВГ

Владимир Гришин... in Go-go!
и самый сложный вопрос - это эти правила, а не устройство очереди.
источник

EK

Eugene Koshevoy in Go-go!
Alexander Shavelev
само собой, но если умерли до ack - то нужны "правила" по которым задачу можно снова давать в работу
в том-же кроллике если не получен ack, то через таймаут он сам пометит это сообщение как noack и сделает доступным для других косьюмеров
источник

AS

Alexander Shavelev in Go-go!
Eugene Koshevoy
в том-же кроллике если не получен ack, то через таймаут он сам пометит это сообщение как noack и сделает доступным для других косьюмеров
даже при политике at most once?
источник

EK

Eugene Koshevoy in Go-go!
Alexander Shavelev
даже при политике at most once?
при at most once - уже кладется ответственность на косьюмера, тогда можно при рековери паники делать noack
источник

ЛА

Локоть Анатолий... in Go-go!
На самом деле со skip locked можно не иметь никаких промежуточных статусов "в процессе" - воркер открывает транзакцию, делает select for update skip locked, обратывает и в конце обновляет статус сразу до "готово".
Если воркер упал в процессе выполнения, транзакция с ним откатывается и запись снова доступна для процессинга
источник

ВС

Владимир Столяров... in Go-go!
тут главное session_in_transaction_idle_timeout не забыть, чтобы коннекты в случае чего не текли
источник

ЛА

Локоть Анатолий... in Go-go!
Владимир Столяров
тут главное session_in_transaction_idle_timeout не забыть, чтобы коннекты в случае чего не текли
Да, свелось к тем же таймаутам, но уже на уровне написанного ранее кода (бд)
источник

AS

Alexander Shavelev in Go-go!
Локоть Анатолий
На самом деле со skip locked можно не иметь никаких промежуточных статусов "в процессе" - воркер открывает транзакцию, делает select for update skip locked, обратывает и в конце обновляет статус сразу до "готово".
Если воркер упал в процессе выполнения, транзакция с ним откатывается и запись снова доступна для процессинга
если задача предполагает условное скачивание файла для обработки - звучит не супер гуд
источник

ЛА

Локоть Анатолий... in Go-go!
Alexander Shavelev
если задача предполагает условное скачивание файла для обработки - звучит не супер гуд
также как выше обсуждалось, только на уже готовых решениях.
Вместо жонглирования статусами, используем блокировки строк на запись.
источник

ЛА

Локоть Анатолий... in Go-go!
Вместо вручную написанных обработчиков упавших задач, естественный откат транзакции
источник

ФП

Федор Петрик... in Go-go!
👍
источник

VS

Vadim Sokoltsov in Go-go!
Всем привет!

Подскажите пожалуйста, кто работал с delve
Запускаю приложение для дебага через delve, вроде все ок
Но как подключаюсь через vscode - не работает, приложение не может найти хост базы данных (dial tcp: lookup db: no such host)
При этом, если пингануть из контейнера с приложением - все ок.
Кто-нибудь сталкивался с таким? Как решили?

Заранее благодарю!
источник

V

Vladimir in Go-go!
Vadim Sokoltsov
Всем привет!

Подскажите пожалуйста, кто работал с delve
Запускаю приложение для дебага через delve, вроде все ок
Но как подключаюсь через vscode - не работает, приложение не может найти хост базы данных (dial tcp: lookup db: no such host)
При этом, если пингануть из контейнера с приложением - все ок.
Кто-нибудь сталкивался с таким? Как решили?

Заранее благодарю!
контейнер знает какой ip у db, локалка твоя -нет
источник

DP

Daniel Podolsky in Go-go!
ну как бы да, именно на открытие этой чакры и расчитана задача.

жаль, что вариантов без паники что-то не придумывается
источник

VS

Vadim Sokoltsov in Go-go!
Vladimir
контейнер знает какой ip у db, локалка твоя -нет
хм, то есть он локально запускает приложение, а не делает attach к процессу в контейнере?
источник

ЛА

Локоть Анатолий... in Go-go!
Vadim Sokoltsov
Всем привет!

Подскажите пожалуйста, кто работал с delve
Запускаю приложение для дебага через delve, вроде все ок
Но как подключаюсь через vscode - не работает, приложение не может найти хост базы данных (dial tcp: lookup db: no such host)
При этом, если пингануть из контейнера с приложением - все ок.
Кто-нибудь сталкивался с таким? Как решили?

Заранее благодарю!
Прокинь порт отладчика наружу и стучись в локалхост.
источник