Size: a a a

F# Flood: Be a cheif

2021 January 27

IC

Ilya Chernoudov in F# Flood: Be a cheif
Ayrat Hudaygulov
написать другой шедулер с холодными тасками
не думаю, что в этом дело
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
Ilya Chernoudov
не думаю, что в этом дело
ну в том числе. но да
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
не только
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
тут надо как то контролировать степерь параллелилизма
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
автоматически
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
но не совсем ясно как
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
то есть как узнать, что лыжи перестали ехать
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
можно примитивно накидать, но хотелось бы увидеть хорошее решение
источник

A

Anatoly in F# Flood: Be a cheif
Ну, вроде как очевидно. Если н доступных процессоров, выполняешь н тасков, остальные в очередь. Для ио у тебя должен быть отдельный тред для колбеков из железа
источник

DS

Doge Shibu in F# Flood: Be a cheif
Ayrat Hudaygulov


               return!
                   //check manufacturer which is region specific
                   checkManufacturerCatalog priceControlsManufacturerCatalog offers maybeMarginTarget
                   |> Option.orElseWith ^fun _ -> maybe {
                       let retailSkuCategory: CategoryId = int retailSku.category
                       let! merchants = approvedCompetitiveSourcesMap.TryFind regionId
                       let approvedCompOffers =
                           offers
                           |> Array.filter ^fun offer -> merchants.Contains offer.merchantId ||
                                                         offer.source = OfferSource.Indirect
                       let directApprovedCompOffers =
                           approvedCompOffers
                           |> Array.filter ^fun offer -> offer.source = OfferSource.Merchant ||
                                                         offer.source = OfferSource.Jet
                       return!
                           //check brand override which is region specific
                           checkBrandOverride priceControlBrandRules taxonomyItems brandOption offers approvedCompOffers directApprovedCompOffers retailSkuCategory maybeMarginTarget
                           ////check category override which is region specific
                           |> Option.orElseWith ^fun _ -> checkCategoryOverride priceControlCategoryRules taxonomyItems offers approvedCompOffers directApprovedCompOffers retailSkuCategory maybeMarginTarget
                           ////check other overrides which is region specific
                           |> Option.orElseWith ^fun _ -> checkOtherSources priceControlDefaultRule isOnePNode approvedCompOffers directApprovedCompOffers maybeMarginTarget
                   }
           }
           |> tuple2 regionId
       |> Map.ofSeq
А что мешало кучу аргументов в отдельный тип собрать?
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
Doge Shibu
А что мешало кучу аргументов в отдельный тип собрать?
а они там много где переиспользуются (чесслово)
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
но многое собрано было да
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Anatoly
Ну, вроде как очевидно. Если н доступных процессоров, выполняешь н тасков, остальные в очередь. Для ио у тебя должен быть отдельный тред для колбеков из железа
там надо IO как то параллелить
источник

A

Anatoly in F# Flood: Be a cheif
Ilya Chernoudov
там надо IO как то параллелить
Железо умеет это делать за тебя
источник

DS

Doge Shibu in F# Flood: Be a cheif
Ilya Chernoudov
упрощенный пример
Мм... spooky action at a distance с кучей неявных эффектов. Как же хорошо
источник

DS

Doge Shibu in F# Flood: Be a cheif
А как потом отлаживать отлично будет, прям сказка.
источник

DS

Doge Shibu in F# Flood: Be a cheif
Я как-то был на проекте, который начинал писаться в свое время примерно в подобном стиле.

Через лет 5 стало понятно, что такие вот трюки в конечном итоге приводят к самым удивительным багам и проблемам, да и логика превращается в лапшу из обновлений/переобновлений зависящих друг от друга полей и сущностей.
источник

DS

Doge Shibu in F# Flood: Be a cheif
Очень весело потом в такой гадости разбираться.
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Doge Shibu
Мм... spooky action at a distance с кучей неявных эффектов. Как же хорошо
не понял, а какие неявные эффекты?
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Doge Shibu
А как потом отлаживать отлично будет, прям сказка.
вроде пока проблем не возникало
источник