I have been working on code clean up and spending the majority of my time on the thread safe heart beat which is proving to be a little more difficult than I expected.
Right now the plan is to poll the jobs table every x seconds (prolly 300 seconds) and if there are jobs found to do a distinct on the table to see if there are multiple groups. If there are multiple groups then spawn off parallel processing of each group. Given the amount of actions for each group I expect that most polls will return more than one group to process.
A long side the heartbeat thread is going to be a worker thread that goes and checks things like back log, group headers, releases to process, tables to clean up etc.
Also a short break will be taken on March 5th for the release of a game, so work will likely slow a bit.