Shub
не просто гомикса. а прям компании-производителя гомиксов
Shub
в частности по авенджерс и люди Х. есть два персонажа из готэма
Shub
кросс овер такой
Крылатый
Vladislav
Anonymous
Vasily
Dmitry
Андрей
sosevka
Андрей
это ж жесть модуль на всю ассемблю открывать, не?
Ayrat
Doge
Ну по меркам jvm так себе стэктрейс.
У спринга бывает сильно веселее
x
Doge
Да, вот как раз про эту картинку и вспомнил
Андрей
Ayrat
Нормас, да
Андрей
после трудного дня с крудами и ефами, думал почитаю про любимый лунный F#, а тут спринги
Shub
пффф, это ты мне тут ребалансы устраивал?
Ayrat
Вообще это похоже на спорт. Всегда неожиданная развязка
Андрей
вместо чего?
Ayrat
На топик с 30ю лямами мессаджей потому что я рисковый
Ayrat
А ему больше 2х лет
Shub
там к тебе выехала делегация уже. с вилами и факелами
Vladislav
Shub
а мы тут развлекались с kafunk сегодня.
Shub
ведь фпшник попадая в проект с продом что делает в первую очередь?
Shub
правильно - начинает избегать успеха любой ценой используя генетические алгоритмы
Ayrat
И причем лагал он моей ночью, кто-то в нуйорке сервис перезапускал, но он опять лагал через пару часов
Ayrat
Но я героически починил. Даже откатывать не пришлось
Shub
я эту историю настолько часто слышу, что предлагаю ввести дизайн-паттерн “лагающий консумер”. по аналогии с шагающим экскаватором
Shub
классика.
Shub
настолько частая ситуация, что это в нашей слаки что-то типа дежурного ответа
Ayrat
Не, там батч сайз постоянно увеличивают или уменьшают. А вот батч БАЙТ лимит - нет
Shub
кстати, возвращаясь к теме логгирования и тресов
Shub
вот как предлагается решать эту проблему
Shub
SqlDb.upsertMany batchSize purchaseOrderReconciliationThorSkuDetailsIssueTable ["PurchaseOrderNumber"; "IssueNumber"] purchaseOrderReconciliationThorSkuDetailsIssueMappings records
|> AsyncArrow.beforeAfter (fun _ -> logger.info "Starting sql upsert in %s for PurchaseOrderNumber=%i" purchaseOrderReconciliationThorSkuDetailsIssueTable purchaseOrderNumber)
(fun _ -> logger.info "Finished sql upsert in %s for PurchaseOrderNumber=%i" purchaseOrderReconciliationThorSkuDetailsIssueTable purchaseOrderNumber)
|> AsyncArrow.retrySqlTransientErrors
|> AsyncArrow.catch
|> AsyncArrow.mapError (fun e -> [sprintf "Error trying to save purchaseOrderReconciliation for PurchaseOrderNumber=%i\n%s\n%A" purchaseOrderNumber (e.ToString ()) records])
|> AsyncArrow.logErrorsTo logger
Ayrat
Я надеюсь ты это сочинил для лулзов
Shub
я это копирую из корпоративного чатика, лол
Ayrat
Чот не хочу я к вам.
Ayrat
А если на серьёзных щах обсуждают
Ayrat
Я ещё не отошёл от нашего подхода где можно и матом послать.
Klei
А работать будет после или по всему проекту?
Dmitry
ух ты! Оказывается в расте можно определить тип [Т; 0] - массив нулевой длинны. Интересно, а зачем такое может понадобиться?
Klei
Klei
Хотя слово тип в данной фразе намекает, что я что-то не так понял.
Ayrat
А у нас нельзя?
Ну не совсем.
https://doc.rust-lang.org/nomicon/exotic-sizes.html#zero-sized-types-zsts
Ayrat
Там пример хороший зачем оно нужно
Ayrat
С мапами и сетом
Klei
Правильно понимаю, что упоминаемый size - это про байты в памяти?
Vasily
Оверхед все равно есть
Ayrat
Vladislav
Dr. Friedrich
Anonymous
Ayrat
Klei
Всегда под войдом несколько иное понимал.
Klei
Ayrat
x
шарповский void не композится
Ayrat
Нормальный войд и нормальный юнит это разное, да
Ayrat
Войд сишарпа - это как бы юнит, но им юзер пользоваться не может. В обоих шарпах нормального войда нет.
Ayrat
Кстати в хаскеле его тоже надо отдельно подключать
Klei
А есть где-то готовый Void для F#, чтобы я всюду свой велосипед не тащил?
Ayrat
Ayrat
Там знатные ФП дрочеры
x
Ayrat
Кстати гопак юзает свой войд для своих же оптимизаций
Ayrat
Он чекает если функция возвращает Job<void>, то ее можно запустить и забыть. Чуть более легковесно запускает
Ayrat
Я уже много раз говорил, гопак - гениальная либа