<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress.com" -->
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"><url><loc>https://notes.logicsquad.net/2020/09/22/detecting-a-toc-in-a-word-document-with-apache-poi/</loc><lastmod>2020-09-22T01:28:40+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://notes.logicsquad.net/2019/05/31/using-an-application-load-balancer-for-ssl-termination/</loc><image:image><image:loc>https://notes.logicsquad.net/wp-content/uploads/2019/05/alb-setup.png</image:loc><image:title>alb-setup</image:title></image:image><lastmod>2019-05-31T03:02:28+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://notes.logicsquad.net/2018/10/25/delayed-job-execution-with-quartz-and-elasticache/</loc><image:image><image:loc>https://notes.logicsquad.net/wp-content/uploads/2018/10/redis-job-store2.png</image:loc><image:title>Application structure using RedisJobStore and Elasticache</image:title><image:caption>The final application structure involves using a RedisJobStore to handle jobs on each node, but note that data storage is offloaded to Elasticache. Job metadata persistence is no longer handled by the node creating the job, freeing up the node to be shutdown (or crash) at will. A job can be created by one node and executed by a completely different node later.</image:caption></image:image><image:image><image:loc>https://notes.logicsquad.net/wp-content/uploads/2018/10/ramjobstore.png</image:loc><image:title>First phase of migration</image:title><image:caption>The first step was to migrate each node to submit Quartz Jobs to a Scheduler, backed by a RAMJobStore. Obviously this suffers from the same problems as the original structure, but was an easy way to test Quartz in this setting.</image:caption></image:image><image:image><image:loc>https://notes.logicsquad.net/wp-content/uploads/2018/10/original.png</image:loc><image:title>Original application structure</image:title><image:caption>The original application structure with respect to handling delayed execution of jobs involved fully self-contained application nodes. Each node was responsible for storing every job it created in-memory, which was both inconvenient and risky.</image:caption></image:image><lastmod>2018-10-25T23:45:52+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://notes.logicsquad.net/blog/</loc><lastmod>2018-10-16T09:49:46+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://notes.logicsquad.net/home/</loc><lastmod>2018-10-16T09:49:46+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://notes.logicsquad.net/contact/</loc><image:image><image:loc>https://notes.logicsquad.net/wp-content/uploads/2018/10/person-smartphone-office-table.jpeg</image:loc><image:title>Placeholder Image</image:title></image:image><lastmod>2018-10-16T09:49:46+00:00</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url><url><loc>https://notes.logicsquad.net</loc><changefreq>daily</changefreq><priority>1.0</priority><lastmod>2020-09-22T01:28:40+00:00</lastmod></url></urlset>
