Size: a a a

2021 April 28

JS

Jerzy Syrowiecki in Haskell
при использовании Persistent подключение и логи уже учтены. это не ваш код?
источник

m

monagatep in Haskell
Нет, не мой
источник

m

monagatep in Haskell
В смысле, код компании, но написан не мной. И я ещё не полностью его понял :(
источник

JS

Jerzy Syrowiecki in Haskell
acquireSqlConnFromPoolThis is equivalent to runSqlPool but does not incur the MonadUnliftIO constraint, meaning it can be used within, for example, a Conduit pipeline.
источник

m

monagatep in Haskell
Хмм
источник

JS

Jerzy Syrowiecki in Haskell
но здесь же не нужно ничего escape
источник

m

monagatep in Haskell
Похоже, то, что надо. Что-то совсем глаз замылился, пропустил в доках. Спасибо. Сейчас попробую.
источник

JS

Jerzy Syrowiecki in Haskell
зачем выходить из персиста в IO, если вам надо оставаться в персисте?
источник

JS

Jerzy Syrowiecki in Haskell
нет, не надо
источник

JS

Jerzy Syrowiecki in Haskell
а, я понял, в чём проблема. но она не в этом месте решается
источник

JS

Jerzy Syrowiecki in Haskell
полагаю, сначала надо в вашем классе Postgres заменить MonadBaseControl на MonadUnliftIO, потому что это требование идёт из деталей реализации Persist, а не из вашей задачи
источник

JS

Jerzy Syrowiecki in Haskell
и всё остальное решается через liftIO, если я правильно понимаю
источник

m

monagatep in Haskell
У меня там здоровенный файл AppMonad с кусками монад; там надо будет поменять MonadBaseControl на MonadUnliftIO, грубо говоря?
источник

JS

Jerzy Syrowiecki in Haskell
скорее всего. я бы с этого начал
источник

m

monagatep in Haskell
Да, посмотрел, там действительно RWST зря используется, только R и S нужны. Но всё равно, видимо, придётся делать MonadUnliftIO StateT
источник

m

monagatep in Haskell
Да, спасибо
источник

JS

Jerzy Syrowiecki in Haskell
ну вот State, как я понимаю, у вас для логики приложения, чтобы хранить какое-то своё состояние транзакции TxState, но я очень надеюсь, что это можно обработать с помощью обычного MonadTrans.lift, выходя из RWST m в соответствующую m
источник

m

monagatep in Haskell
А может ли stack параллельно собирать?
Запускаю stack build --fast --jobs=24, а он всё равно в один поток молотит. Хотя файлы, вроде, независимые.
источник

JS

Jerzy Syrowiecki in Haskell
странно, такой опции нет в хелпе. но он пакеты распараллеливает по умолчанию. но не файлы-модули. модули распараллеливает ghc
источник

JS

Jerzy Syrowiecki in Haskell
stack build --ghc-options=-j24
источник