<feed xmlns='http://www.w3.org/2005/Atom'>
<title>WebStat analyser/src/ingestor.hpp, branch webstat-0.3.1</title>
<subtitle>WebStat web site access analyser</subtitle>
<id>https://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.3.1</id>
<link rel='self' href='https://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.3.1'/>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/'/>
<updated>2026-03-25T18:44:15Z</updated>
<entry>
<title>Revise stats and add signal handlers to log them and reset them</title>
<updated>2026-03-25T18:44:15Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-03-25T18:44:15Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=426a6a3d9309e3f7cf5fc89d6a687c7895785cc3'/>
<id>urn:sha1:426a6a3d9309e3f7cf5fc89d6a687c7895785cc3</id>
<content type='text'>
Also logs them on main loop exit.
</content>
</entry>
<entry>
<title>Employ temporary/short files to handle errors reading/writing park logs</title>
<updated>2026-03-22T23:41:56Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-03-22T23:41:56Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=6a475f58c0fcb4398e48618d90b0ca05750c3ca8'/>
<id>urn:sha1:6a475f58c0fcb4398e48618d90b0ca05750c3ca8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add missing -Wshadow</title>
<updated>2026-03-22T18:03:14Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-03-22T17:02:40Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=d92816a5f55cea9b67b7aab306eb1109af6dcbbe'/>
<id>urn:sha1:d92816a5f55cea9b67b7aab306eb1109af6dcbbe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add logging :-o</title>
<updated>2026-03-20T23:48:32Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-03-20T23:48:32Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=05c47ab65e73b16887b7c7a1eb31acf6d364ef41'/>
<id>urn:sha1:05c47ab65e73b16887b7c7a1eb31acf6d364ef41</id>
<content type='text'>
Adds virtual log function, real implementation writes to syslog.
Test implementation writes to BOOST_TEST_MESSAGE, perf implementation
discards.
Replaces existing prints to stderr and adds logs to all key points.
</content>
</entry>
<entry>
<title>Insert log entries in batches</title>
<updated>2026-03-20T02:23:08Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2026-03-20T02:17:04Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=0f5a0a8e2d43774288d4d6ea747278ca6e085a2a'/>
<id>urn:sha1:0f5a0a8e2d43774288d4d6ea747278ca6e085a2a</id>
<content type='text'>
Store log lines in memory until threshold is reach or idle occurs, then
insert all the lines in a single transaction. Save points handle the
case of insertion errors. On success the queue is cleared.
Parked lines also saved in bulk, only necessary if queued lines could
not be inserted on shutdown, else the queue simply grows until ability
to insert is restored. Importing parked lines just adds them to the
queue and the normal process then follows.
</content>
</entry>
<entry>
<title>Gracefully handle SIGTERM</title>
<updated>2026-03-19T12:33:48Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-03-19T12:33:48Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=8c6fecd356003309f8eebec30374344272ca6072'/>
<id>urn:sha1:8c6fecd356003309f8eebec30374344272ca6072</id>
<content type='text'>
Apache sends SIGTERM to the logger process to it shutdown. Honestly I
thought it would just close stdin and I should have checked.
</content>
</entry>
<entry>
<title>Use std::future over std::thread for background jobs</title>
<updated>2026-03-17T17:33:14Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-03-17T17:33:14Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=ae0ee6bbfb4dcd1f112876d0e7e5b3bcabdfb002'/>
<id>urn:sha1:ae0ee6bbfb4dcd1f112876d0e7e5b3bcabdfb002</id>
<content type='text'>
Easier checking if a job has completed [successfully] and reseting state
for the next time.
</content>
</entry>
<entry>
<title>Don't start new curl operations outside the main thread</title>
<updated>2026-03-17T15:24:46Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-03-17T15:24:46Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=fc96582867acd2bcaef29feaae5c1193969d9a27'/>
<id>urn:sha1:fc96582867acd2bcaef29feaae5c1193969d9a27</id>
<content type='text'>
Neither the curl handle, not the operation map is thread safe. This
isn't ideal, but it does solve the problem in a safe manor.
</content>
</entry>
<entry>
<title>Execute jobs even when processing incoming logs</title>
<updated>2026-03-17T11:48:34Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-03-17T11:48:34Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=d2ecb7f49c3f3b60e3d1f297fd033071a02cfa9a'/>
<id>urn:sha1:d2ecb7f49c3f3b60e3d1f297fd033071a02cfa9a</id>
<content type='text'>
Jobs run on background threads now, so we can happily run them even when
we're busy.
</content>
</entry>
<entry>
<title>Run jobs on a background thread</title>
<updated>2026-03-17T11:11:14Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2026-03-17T11:11:14Z</published>
<link rel='alternate' type='text/html' href='https://git.randomdan.homeip.net/repo/webstat/commit/?id=0e3c2e8dd462a7d56f8b61e15c8cf10681898a1f'/>
<id>urn:sha1:0e3c2e8dd462a7d56f8b61e15c8cf10681898a1f</id>
<content type='text'>
</content>
</entry>
</feed>
