@scala_ru

Страница 138 из 1499
Denis
03.10.2016
12:22:20
и все по новой

зачем тебе journal ?

saveState(state) pipeTo self become saving

в saving отрабатваешь status.Failure если что

Google
Denis
03.10.2016
12:25:48
А можно юзкейс узнать? Я как раз сейчас в своей ES либе думаю запилить поддержку чисто snapshot state поведений. Писал issue и тут твой вопрос как раз :)

Nikolay
03.10.2016
12:27:27
> думаю запилить поддержку чисто snapshot state поведений ну видишь, не такой уж безумный я значит

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

Denis
03.10.2016
12:28:57
Но там не будет akka-persistence использоваться

отдельный актор

Nikolay
03.10.2016
12:30:31
> А можно юзкейс узнать? у меня в диалогах события прочиток/получения сообщений. сохраняем даты, но по сути они никак не используются в итоге, и только занимают место в journal, восстановление практически всегда из снепшотов. снепшоты по сути тоже не особо нужны, потому что нужен только последний)

Denis
03.10.2016
12:33:16
Ну если реально история не нужна, то можно намного все проще сделать и главное типобезопасней чем akka serialization.

Nick
03.10.2016
12:33:54
в akka persistence не боишься потерять сообщения?

Nikolay
03.10.2016
12:35:04
уточни

Nick
03.10.2016
12:36:51
leveldb не дает гарантии записи, можно только там сообещения терять

Denis
03.10.2016
12:37:00
тут есть несколько вариантов потерять данные :) 1. Косяк в акке 2. Косяк в плагине 3. Косяк в настройке хранилища

Nikita
03.10.2016
12:37:25
leveldb не дает гарантии записи, можно только там сообещения терять
в продакшене лучше использовать что-то вроде кассандры

Google
Denis
03.10.2016
12:37:44
мы используем кассандру

они на базе этого плагина lagom пилят, так что есть уверенность некая )

Nick
03.10.2016
12:38:14
насколько я помню, касандра тоже не дает гарантии

Denis
03.10.2016
12:38:23
ничего не дает гарантии

Nikolay
03.10.2016
12:38:25
этого? https://github.com/akka/akka-persistence-cassandra

Nick
03.10.2016
12:38:46
хотя нет, дает

Denis
03.10.2016
12:38:46
может метеорит упатсть на ДЦ или годзилла

это все tradeoffs

кассандра в этом плане хороша поддержкой multi dc

Nikita
03.10.2016
12:44:27
а кто использует akka-persistence-query с кассандрой, как можно быть уверенным что вызывая eventsByTag с нужным оффсетом мы не пропустим какой-нибудь ивент при рестарте?

Denis
03.10.2016
12:46:49
Он же трекает внутри seqNr для каждого persistenceId

Или ты имеешь в виду что событие появится в mat view после того как мы ушли дальше?

Nikita
03.10.2016
12:47:56
это да, но что если мы его остановили, получили оффсет, а потом с другой ноды записался ивент "в прошлое" ввиду неочень синхронизированного времени

Denis
03.10.2016
12:48:25
в итоге стрим упадет

хотя нет

не упадет

фак

Nikita
03.10.2016
12:49:29
нет, я про другую ситуацию. есть стрим, мы его остановили у нас есть офсет. потом записали событие в прошлое, которое по времени до офсета.

что будет если мы снова запустим стрим с данным оффсетом?

это событие будет пропущено?

Google
Denis
03.10.2016
12:50:49
ну да я про это и говорю, что если записали оффсет а событие добавилось с меньшим оффсетом

видимо да

Nikita
03.10.2016
12:51:13
надо код читать

видимо

Denis
03.10.2016
12:51:19
надо у патрика спросить )

Nikita
03.10.2016
12:51:19
а то так непонятно

ну или так :)

Vadim
03.10.2016
19:10:26
хэй - новый выпуск подкаста http://scalalaz.ru/series-05.html

Dim
04.10.2016
08:52:20
Как из List[Future[Option[Model]]] сделать List[Future[Model]] ?

Vladimir
04.10.2016
08:52:40
collectом?

Grigory
04.10.2016
08:52:48
только открыть опшены*

Vladimir
04.10.2016
08:53:17
Future.sequence(someval).map(_.collect {case Some(x) => x} )

Grigory
04.10.2016
08:53:32
угу

Igor
04.10.2016
08:54:42
или flatMap(identity)

Aleksey
04.10.2016
08:54:55
Сиквенс не нужен. Просто someval.map(_.collect { case Some(x) => x }) Там же не надо получить Future[List[Model]].

Igor
04.10.2016
08:55:44
тогда не получится профильтровать list

Aleksey
04.10.2016
08:56:25
или flatMap(identity)
Не прокатит.

Igor
04.10.2016
08:56:30
уже понял

Admin
ERROR: S client not available

Aleksey
04.10.2016
08:56:52
scala> Future.successful[Option[Int]](Some(1)).flatMap(identity) <console>:12: error: type mismatch; found : Option[Int] => Option[Int] required: Option[Int] => scala.concurrent.Future[?] Future.successful[Option[Int]](Some(1)).flatMap(identity)

Google
Igor
04.10.2016
08:56:53
Future.fold(a: List[Future[Option[Model]]])(List.empty){ case (list, opt) => opt.fold(list)(_ +: list) }

как-то так

Vladimir
04.10.2016
08:57:03
рано или поздно все равно материализовать)

Igor
04.10.2016
08:58:13
на выходе правда будет Future[List[Model]] все равно

ну как бэ непонятно зачем иметь List[Future[Model]] на выходе

Dim
04.10.2016
08:59:03
Ага, спасибо, в конце мне в результате это и надо.

Совсем уже заблудился в футурах...

Viacheslav
04.10.2016
10:23:49
/scala object Rextester extends App {println("Shaitanama")}

/scala object Rextester extends App {println("Shaitanama")}

Aleksey
04.10.2016
10:25:18
/scala object X extends App { println(Seq(1,2,3).map(_ + 1)) }

Viacheslav
04.10.2016
10:25:27
ну вобщем вы поняли

Mikhail
04.10.2016
10:27:03
/scala

/scala

Vladimir
04.10.2016
10:27:31
/php

Aleksey
04.10.2016
10:27:43
/php
NOOOOOOOOOO

Viacheslav
04.10.2016
10:28:04
пишем так: в кавычках для кода /scala object Rextester extends App { тут код}

Denis
04.10.2016
10:28:26
/scala object Rextester extends App {import scala.io.Source for(line <- Source.fromPath("/etc/passwd").getLines()) println(line)}

Viacheslav
04.10.2016
10:28:41
))

Aleksey
04.10.2016
10:30:54
/scala object Rextester extends App { import scala.sys.process._ "uname -a".! }

Viacheslav
04.10.2016
10:31:59
врот мне ноги)

Google
Aleksey
04.10.2016
10:36:23
Короче вы знаете что делать.

Nick
04.10.2016
10:36:54
/scala object Lol extends App { System.exit(0) }

/scala object Rextester extends App { System.exit(0) }

/scala object Rextester extends App { import scala.sys.process._ "ps -aux".! }

Страница 138 из 1499