@@ -2,7 +2,7 @@ package com.intenthq.action_processor.integrations.aggregations
2
2
3
3
import java .util .concurrent .ConcurrentMap
4
4
5
- import cats .effect .{IO , Resource }
5
+ import cats .effect .{Blocker , ContextShift , IO , Resource , SyncIO }
6
6
import com .intenthq .action_processor .integrations .config .MapDbSettings
7
7
import com .intenthq .action_processor .integrations .feeds .FeedContext
8
8
import com .intenthq .action_processor .integrations .repositories .MapDBRepository
@@ -14,9 +14,12 @@ import scala.jdk.CollectionConverters._
14
14
15
15
object Aggregate {
16
16
17
+ private lazy val blocker = Blocker [SyncIO ].allocated.unsafeRunSync()._1
18
+ implicit private val contextShift : ContextShift [IO ] = IO .contextShift(scala.concurrent.ExecutionContext .global)
19
+
17
20
def noop [I ]: fs2.Pipe [IO , I , (I , Long )] = _.map(_ -> 1L )
18
21
19
- private def loadAggRepository [K ](mapDbSettings : MapDbSettings ): Resource [IO , HTreeMap [K , Long ]] = {
22
+ private def loadAggRepository [K ](mapDbSettings : MapDbSettings )( blocker : Blocker ) : Resource [IO , HTreeMap [K , Long ]] = {
20
23
21
24
val serializer : Serializer [K ] = new GroupSerializerObjectArray [K ] {
22
25
val elsaSerializer : ElsaSerializer = new ElsaMaker ().make
@@ -25,7 +28,7 @@ object Aggregate {
25
28
}
26
29
27
30
MapDBRepository
28
- .load(mapDbSettings)
31
+ .load(mapDbSettings)(blocker)
29
32
.map(db =>
30
33
db.hashMap(" stuff" , serializer, Serializer .LONG .asInstanceOf [Serializer [Long ]])
31
34
.layout(mapDbSettings.segments, mapDbSettings.nodeSize, mapDbSettings.levels)
@@ -52,7 +55,7 @@ object Aggregate {
52
55
)
53
56
.map(e => (e.getKey, e.getValue))
54
57
55
- fs2.Stream .resource[IO , ConcurrentMap [K , Long ]](loadAggRepository(feedContext.mapDbSettings)).flatMap { aggRepository =>
58
+ fs2.Stream .resource[IO , ConcurrentMap [K , Long ]](loadAggRepository(feedContext.mapDbSettings)(blocker) ).flatMap { aggRepository =>
56
59
sourceStream.evalMap { i =>
57
60
put(aggRepository, i)
58
61
}.drain ++ streamKeyValue(aggRepository)
0 commit comments