<FromGitter>
<636f7374> Asynchronous Logger (Log4j) uses LMAX Disruptor, which is considered the best performing?
<FromGitter>
<636f7374> Disruptor is a library for the Java programming language that provides a concurrent ring buffer data structure of the same name, developed at LMAX Exchange. It is designed to provide a low-latency, high-throughput work queue in asynchronous event processing architectures. Wikipedia
<FromGitter>
<636f7374> MultiQueue functions similarly to the LMAX Disruptor from a high level view. There's an incoming FIFO data stream that is broadcast to a set of subscribers as if there were multiple streams being written to. There are two main differences: ⏎ ⏎ MultiQueue transparently supports switching between single and multiple producers. ⏎ ⏎ Each broadcast stream can be shared among multiple consumers.
<FromGitter>
<tenebrousedge> cool, thank you again
<FromGitter>
<watzon> SpaceVim is nice
<FromGitter>
<wsdjeg> @watzon Thank you
<FromGitter>
<watzon> Oh you're actually the creator aren't you? I'm actually in the Telegram group for SpaceVim haha. I was really happy to see it has built in Crystal support when I first found it.
<FromGitter>
<wsdjeg> yeah
<FromGitter>
<watzon> Well keep up the good work 👍
<FromGitter>
<wsdjeg> the telegram is bridged with gitter and irc channel
<FromGitter>
<watzon> Yeah I'm in the gitter chat too
<FromGitter>
<rurounijones_gitlab> Anyone know if it is possible to not use prepared statements in crystal-pg? I want to run many commands in one call to Postgres but getting`Unhandled exception in spawn: cannot insert multiple commands into a prepared statement (PQ::PQError)`. As far as I can tell it looks like prepared statements is the only option.
sagax has quit [Ping timeout: 272 seconds]
ur5us has quit [Ping timeout: 260 seconds]
sagax has joined #crystal-lang
postmodern has quit [Quit: Leaving]
_ht has joined #crystal-lang
_ht has quit [Quit: _ht]
ur5us has joined #crystal-lang
<FromGitter>
<codenoid> how it's going
renich has quit [Quit: renich]
ur5us has quit [Ping timeout: 240 seconds]
<FromGitter>
<yxhuvud> @rurounijones_gitlab I don't have an answer to you, but you should probably report that bug in the appropriate project.
<FromGitter>
<rurounijones_gitlab> Don't think it is a bug, more a feature request
<FromGitter>
<rurounijones_gitlab> But that is from 2016 in a github ticket so not sure if it is still accurate and it uses `receive` which doesn't look right since it blocks processing
<FromGitter>
<rurounijones_gitlab> In my case I have multiple fibers. Some of them *do* use a channel as a job queue style setup so that could work however others don't so I cannot think of a way to shut them down.
Nicolab has joined #crystal-lang
<FromGitter>
<636f7374> Oops! Heroku HTTP / 1.1 KeepAlive is not using the same socket !!!!
<FromGitter>
<636f7374> Originally planned to use HTTP1.1 KeepAlive as a SOCKS5 wrapper, it seems that the plan is a mess (Heroku)
<FromGitter>
<636f7374> It seems that in Heroku only WebSocket can be used to keep the same socket.
<FromGitter>
<636f7374> Anyone with this intention please "detour".
<FromGitter>
<straight-shoota> @rurounijones_gitlab You can check a simple flag on each iteration.
<FromGitter>
<plambert> If I have a class property `positive_number : Float64` what is the best way to enforce a constraint (i.e. "must be > 0.0") for the setter?
<FromGitter>
<plambert> Just define the setter myself? `def positive_number=(value : Float64); raise "kaboom" unless value > 0.0; @positive_number=value; end`
<FromGitter>
<tenebrousedge> that seems like a reasonable option