MarginaliaSearch/code/execution
Viktor Lofgren 51e46ad2b0 (refac) Move export tasks to a process and clean up process initialization for all ProcessMainClass descendents
Since some of the export tasks have been memory hungry, sometimes killing the executor-services, they've been moved to a separate process that can be given a larger Xmx.

While doing this, the ProcessMainClass was given utilities for the boilerplate surrounding receiving mq requests and responding to them, some effort was also put toward making the process boot process a bit more uniform.  It's still a bit heterogeneous between different processes, but a bit less so for now.
2024-11-21 16:00:09 +01:00
..
api (conf) Introduce a new concept of node profiles 2024-11-20 18:15:22 +01:00
java/nu/marginalia (refac) Move export tasks to a process and clean up process initialization for all ProcessMainClass descendents 2024-11-21 16:00:09 +01:00
test/nu/marginalia/svc (refac) Remove src/main from all source code paths. 2024-02-23 16:13:40 +01:00
build.gradle (refac) Move export tasks to a process and clean up process initialization for all ProcessMainClass descendents 2024-11-21 16:00:09 +01:00
readme.md Clean up documentation and rename domain-links to link-graph 2024-02-28 11:40:39 +01:00

The execution subsystem is responsible for the execution of long running tasks on each index node. It lives in the executor-service module.

It accomplishes this using the message queue and actor library, which permits program state to survive crashes and reboots.

The subsystem exposes four APIs:

  • Execution API - for starting and stopping tasks, also contains miscellaneous commands
  • Crawl API - for managing the crawl workflow
  • Sideload API - for sideloading data
  • Export API - for exporting data