<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="133585" data-post-id="133585">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="arton" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/arton/120/9244_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  arton
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks for the great project <a class="mention" href="/u/sorentwo" rel="nofollow">@sorentwo</a> ! I’m working on using it to handle a long running port process in a separate app. However, I have a requirement to report back percentage progress while it is running, so I’m using a GenServer to manage feedback from the port. What’s a good way to prevent the job from being marked complete until my GenServer has finished its work?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="133585" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/oban-reliable-and-observable-job-processing/22449/52">Post #51</a>
	                </div>
	            </div>
              <div id="likers-container-133585" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="133585"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #51"></div>
  </section>
</div>
    <div class="postbit" id="133671" data-post-id="133671">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sorentwo" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sorentwo/120/37360_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sorentwo
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Oban Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="arton" data-post="52" data-topic="22449">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/arton/48/9244_2.png" class="avatar"> arton:</div>
<blockquote>
<p>What’s a good way to prevent the job from being marked complete until my GenServer has finished its work?</p>
</blockquote>
</aside>
<p>Anything that blocks the <code>perform/1</code> function will prevent the job from being marked complete. There isn’t a limit on how long a job can execute (since it isn’t executed within a transaction). Without knowing more about your use case or seeing the code I can only provide some rough suggestions.</p>
<ul>
<li>Make a <code>call</code> to your GenServer process (we need a call so that we get the <code>from</code> tuple).</li>
<li>Within your <code>handle_call</code> function grab the <code>from</code> for the caller (which will be your job process) and start a Task to track progress.</li>
<li>Respond from <code>handle_call</code> immediately without something like <code>{:reply, :ok, newstate}</code>, don’t <code>await</code> the task.</li>
<li>Using a loop within the task start sending progress messages to the caller. You can loop with a delay by using <code>Process.sleep/1</code>. The original caller will need to need use a <code>receive</code> loop to block and wait for progress messages.</li>
<li>When the task is complete send the caller a message to let it know work is finished.</li>
<li>Be sure to set an <code>after</code> timeout in your receive loop to prevent blocking forever and leaving a zombie job.</li>
</ul>
<p>The worker portion would look roughly like this (warning, untested code):</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule MyApp.WaitingWorker do
  use Oban.Worker

  @impl true
  def perform(%{id: id}) do
    :ok = MyApp.Business.work(id)

    receive_loop(id)
  end

  defp receive_loop(id) do
    receive do
      {:progress, percent} -&gt;
        report_progress(id, percent)
        receive_loop(id)

      :complete -&gt;
        :ok

    after
      60_000 -&gt;
        raise RuntimeError, "no progress for #{id} after 60s"
    end
  end
end
</code></pre>
<p>Hope that helps and doesn’t just cause more confusion <img src="https://forum.elixirforum.com/images/emoji/apple/smile.png?v=15" title=":smile:" class="emoji" alt=":smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="133671" data-batch-url="/posts/batch_likers">
                        6
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/oban-reliable-and-observable-job-processing/22449/53">Post #52</a>
	                </div>
	            </div>
              <div id="likers-container-133671" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="133671"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #52"></div>
  </section>
</div>
    <div class="postbit" id="133755" data-post-id="133755">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="arton" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/arton/120/9244_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  arton
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks <a class="mention" href="/u/sorentwo" rel="nofollow">@sorentwo</a>, that was very helpful! I ended up doing it a little different on the GenServer side, but passing the caller pid and using the receive loop worked great.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="133755" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/oban-reliable-and-observable-job-processing/22449/54">Post #53</a>
	                </div>
	            </div>
              <div id="likers-container-133755" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="133755"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #53"></div>
  </section>
</div>
    <div class="postbit" id="133890" data-post-id="133890">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sorentwo" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sorentwo/120/37360_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sorentwo
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Oban Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Oban v0.5.0 has been released. This includes some minor features, a number of bug fixes and some documentation improvements.</p>
<p>There are some changes that may cause unexpected retries and different telemetry payload. See the CHANGELOG excerpt and the linked docs below for more details.</p>
<h3><a name="p-133890-added-1" class="anchor" href="#p-133890-added-1" aria-label="Heading link" rel="nofollow"></a>Added</h3>
<ul>
<li>[Oban.Pruner] Added <code>prune_limit</code> option to constrain the number of rows deleted on each prune iteration. This prevents locking the database when there are a large number of jobs to delete.</li>
</ul>
<h3><a name="p-133890-changed-2" class="anchor" href="#p-133890-changed-2" aria-label="Heading link" rel="nofollow"></a>Changed</h3>
<ul>
<li>[Oban.Worker] Treat <code>{:error, reason}</code> tuples returned from <code>perform/1</code> as a failure. The <code>:kind</code> value reported in telemetry events is now differentiated, where a rescued exception has the kind <code>:exception</code>, and an error tuple has the kind <code>:error</code>. Thanks <a class="mention" href="/u/lucasmazza" rel="nofollow">@lucasmazza</a></li>
</ul>
<h3><a name="p-133890-fixed-3" class="anchor" href="#p-133890-fixed-3" aria-label="Heading link" rel="nofollow"></a>Fixed</h3>
<ul>
<li>
<p>[Oban.Testing] Only check <code>available</code> and <code>scheduled</code> jobs with the <code>assert|refute_enqueued</code> testing helpers. Thanks <a class="mention" href="/u/jc00ke" rel="nofollow">@jc00ke</a></p>
</li>
<li>
<p>[Oban.Queue.Watchman] Catch process exits when attempting graceful shutdown.  Any exits triggered within <code>terminate/2</code> are caught and ignored. This safely handles situations where the producer exits before the watchman does. Thanks <a class="mention" href="/u/axelson" rel="nofollow">@axelson</a></p>
</li>
<li>
<p>[Oban.Queue.Producer] Use circuit breaker protection for gossip events and call queries directly from the producer process. This prevents pushing all queries through the <code>Notifier</code>, and ensures more granular control over gossip errors. Thanks <a class="mention" href="/u/axelson" rel="nofollow">@axelson</a></p>
</li>
</ul>
<p><a href="https://hexdocs.pm/oban/0.5.0/Oban.html" rel="noopener nofollow ugc">v0.5.0 Docs</a><br>
<a href="https://hexdocs.pm/oban/0.5.0/Oban.Telemetry.html#content" rel="noopener nofollow ugc">Telemetry Changes</a><br>
<a href="https://hexdocs.pm/oban/0.5.0/Oban.Worker.html#module-defining-workers" rel="noopener nofollow ugc">Error Tuple Changes</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="133890" data-batch-url="/posts/batch_likers">
                        7
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/oban-reliable-and-observable-job-processing/22449/55">Post #54</a>
	                </div>
	            </div>
              <div id="likers-container-133890" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="133890"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #54"></div>
  </section>
</div>
    <div class="postbit" id="134632" data-post-id="134632">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="arton" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/arton/120/9244_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  arton
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Looks like a great update, keep up the good work <a class="mention" href="/u/sorentwo" rel="nofollow">@sorentwo</a> !</p>
<p>I have another question. I need to alert the end user if the entire job fails after all retries. Do you have a recommendation? I see the <code>:telemetry.attach("oban-errors", [:oban, :failure], &amp;ErrorReporter.handle_event/4, nil)</code> example, which could be a possibility, but thought I’d check with you.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="134632" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/oban-reliable-and-observable-job-processing/22449/56">Post #55</a>
	                </div>
	            </div>
              <div id="likers-container-134632" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="134632"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #55"></div>
  </section>
</div>
    <div class="postbit" id="134714" data-post-id="134714">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sorentwo" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sorentwo/120/37360_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sorentwo
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Oban Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="arton" data-post="56" data-topic="22449">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/arton/48/9244_2.png" class="avatar"> arton:</div>
<blockquote>
<p>I need to alert the end user if the entire job fails after all retries. Do you have a recommendation? I see the <code>:telemetry.attach("oban-errors", [:oban, :failure], &amp;ErrorReporter.handle_event/4, nil)</code> example, which could be a possibility</p>
</blockquote>
</aside>
<p>That is exactly what I would recommend doing. The <code>meta</code> map passed to your handler will have both <code>max_attempts</code> and the <code>attempt</code> field. You can easily check if retries have been exhausted and send your alert to the user.</p>
<p>The table at the top of <a href="https://hexdocs.pm/oban/Oban.Telemetry.html#summary" rel="noopener nofollow ugc">Oban.Telemetry docs</a> has a breakdown of all the fields passed to each event. (Though now that I liked to it I see a typo, it is <code>max_attempts</code> plural, not <code>max_attempt</code>)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="134714" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/oban-reliable-and-observable-job-processing/22449/57">Post #56</a>
	                </div>
	            </div>
              <div id="likers-container-134714" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="134714"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #56"></div>
  </section>
</div>
    <div class="postbit" id="134749" data-post-id="134749">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="arton" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/arton/120/9244_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  arton
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Ok, sounds good. Thanks again for the help <a class="mention" href="/u/sorentwo" rel="nofollow">@sorentwo</a> !</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="134749" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/oban-reliable-and-observable-job-processing/22449/58">Post #57</a>
	                </div>
	            </div>
              <div id="likers-container-134749" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="134749"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #57"></div>
  </section>
</div>
    <div class="postbit" id="134816" data-post-id="134816">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="luizpvasc" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/luizpvasc/120/6729_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  luizpvasc
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks for the great work <a class="mention" href="/u/sorentwo" rel="nofollow">@sorentwo</a>, Oban looks amazing. I’m currently playing with it in a project and everything is running smoothly <img src="https://forum.elixirforum.com/images/emoji/apple/smile.png?v=15" title=":smile:" class="emoji" alt=":smile:" loading="lazy" width="20" height="20"><img src="https://forum.elixirforum.com/images/emoji/apple/green_heart.png?v=15" title=":green_heart:" class="emoji" alt=":green_heart:" loading="lazy" width="20" height="20"></p>
<p>I have a question about pruning, if you don’t mind. In the Readme, the first example suggests <code>prune: {:maxlen, 100_000}</code>. Looking at the code, it seems prune is used to delete truncated jobs and outdated jobs, but I’m not sure what those are. Can you explain how a job gets truncated or outdated?</p>
<p>Thanks!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="134816" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/oban-reliable-and-observable-job-processing/22449/59">Post #58</a>
	                </div>
	            </div>
              <div id="likers-container-134816" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="134816"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #58"></div>
  </section>
</div>
    <div class="postbit" id="134817" data-post-id="134817">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sorentwo" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sorentwo/120/37360_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sorentwo
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Oban Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Glad to hear Oban is working well for you!</p>
<aside class="quote no-group" data-username="luizpvasc" data-post="59" data-topic="22449">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/luizpvasc/48/6729_2.png" class="avatar"> luizpvasc:</div>
<blockquote>
<p>Looking at the code, it seems prune is used to delete truncated jobs and outdated jobs, but I’m not sure what those are. Can you explain how a job gets truncated or outdated?</p>
</blockquote>
</aside>
<p>Any job that won’t be executed (either now or in the future) can be pruned. This may be explained better with some examples:</p>
<p><strong>Never Pruned</strong></p>
<ul>
<li>a new job, which has the state <code>available</code></li>
<li>a scheduled job, which has the state <code>available</code> and is scheduled to execute some time in the future</li>
<li>a job that failed execution and will be retried in the future</li>
</ul>
<p><strong>Possibly Pruned</strong></p>
<ul>
<li>any job that ran successfully, it is in the <code>completed</code> state</li>
<li>any job that has reached the maximum number of retries or has been manually killed, these are in the <code>discarded</code> state</li>
</ul>
<p>It is designed so that you’ll never lose jobs that still have work to do, but you can prevent the table from growing indefinitely.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="134817" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/oban-reliable-and-observable-job-processing/22449/60">Post #59</a>
	                </div>
	            </div>
              <div id="likers-container-134817" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="134817"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #59"></div>
  </section>
</div>
    <div class="postbit" id="134819" data-post-id="134819">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="luizpvasc" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/luizpvasc/120/6729_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  luizpvasc
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>That makes a lot of sense. Thanks for the detailed answer!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="134819" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/oban-reliable-and-observable-job-processing/22449/61">Post #60</a>
	                </div>
	            </div>
              <div id="likers-container-134819" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="134819"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #60"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/22449/load_more?page=7">Load more posts (251 remaining)</a>
</div></template></turbo-stream>