mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-24 05:18:58 +00:00
(actor) Give process spawners more easily recognizable names.
This commit is contained in:
parent
39911e3acd
commit
ede5d1f890
@ -4,17 +4,17 @@ public enum Actor {
|
|||||||
CRAWL,
|
CRAWL,
|
||||||
RECRAWL,
|
RECRAWL,
|
||||||
CONVERT_AND_LOAD,
|
CONVERT_AND_LOAD,
|
||||||
CONVERTER_MONITOR,
|
PROC_CONVERTER_SPAWNER,
|
||||||
LOADER_MONITOR,
|
PROC_LOADER_SPAWNER,
|
||||||
CRAWLER_MONITOR,
|
PROC_CRAWLER_SPAWNER,
|
||||||
MESSAGE_QUEUE_MONITOR,
|
MONITOR_MESSAGE_QUEUE,
|
||||||
PROCESS_LIVENESS_MONITOR,
|
MONITOR_PROCESS_LIVENESS,
|
||||||
FILE_STORAGE_MONITOR,
|
MONITOR_FILE_STORAGE,
|
||||||
ADJACENCY_CALCULATION,
|
ADJACENCY_CALCULATION,
|
||||||
CRAWL_JOB_EXTRACTOR,
|
CRAWL_JOB_EXTRACTOR,
|
||||||
EXPORT_DATA,
|
EXPORT_DATA,
|
||||||
TRUNCATE_LINK_DATABASE,
|
TRUNCATE_LINK_DATABASE,
|
||||||
INDEX_CONSTRUCTOR_MONITOR,
|
PROC_INDEX_CONSTRUCTOR_SPAWNER,
|
||||||
CONVERT,
|
CONVERT,
|
||||||
RESTORE_BACKUP;
|
RESTORE_BACKUP;
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import com.google.inject.Inject;
|
|||||||
import com.google.inject.Singleton;
|
import com.google.inject.Singleton;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import nu.marginalia.actor.monitor.*;
|
import nu.marginalia.actor.monitor.*;
|
||||||
|
import nu.marginalia.actor.proc.*;
|
||||||
import nu.marginalia.actor.prototype.AbstractActorPrototype;
|
import nu.marginalia.actor.prototype.AbstractActorPrototype;
|
||||||
import nu.marginalia.actor.state.ActorStateInstance;
|
import nu.marginalia.actor.state.ActorStateInstance;
|
||||||
import nu.marginalia.actor.task.*;
|
import nu.marginalia.actor.task.*;
|
||||||
@ -29,7 +30,6 @@ public class ActorControlService {
|
|||||||
private final int node;
|
private final int node;
|
||||||
@Inject
|
@Inject
|
||||||
public ActorControlService(MessageQueueFactory messageQueueFactory,
|
public ActorControlService(MessageQueueFactory messageQueueFactory,
|
||||||
GsonFactory gsonFactory,
|
|
||||||
BaseServiceParams baseServiceParams,
|
BaseServiceParams baseServiceParams,
|
||||||
ConvertActor convertActor,
|
ConvertActor convertActor,
|
||||||
ConvertAndLoadActor convertAndLoadActor,
|
ConvertAndLoadActor convertAndLoadActor,
|
||||||
@ -50,7 +50,7 @@ public class ActorControlService {
|
|||||||
) {
|
) {
|
||||||
this.messageQueueFactory = messageQueueFactory;
|
this.messageQueueFactory = messageQueueFactory;
|
||||||
this.eventLog = baseServiceParams.eventLog;
|
this.eventLog = baseServiceParams.eventLog;
|
||||||
this.gson = gsonFactory.get();
|
this.gson = GsonFactory.get();
|
||||||
this.node = baseServiceParams.configuration.node();
|
this.node = baseServiceParams.configuration.node();
|
||||||
|
|
||||||
register(Actor.CRAWL, crawlActor);
|
register(Actor.CRAWL, crawlActor);
|
||||||
@ -59,13 +59,14 @@ public class ActorControlService {
|
|||||||
register(Actor.RESTORE_BACKUP, restoreBackupActor);
|
register(Actor.RESTORE_BACKUP, restoreBackupActor);
|
||||||
register(Actor.CONVERT_AND_LOAD, convertAndLoadActor);
|
register(Actor.CONVERT_AND_LOAD, convertAndLoadActor);
|
||||||
|
|
||||||
register(Actor.INDEX_CONSTRUCTOR_MONITOR, indexConstructorMonitorActor);
|
register(Actor.PROC_INDEX_CONSTRUCTOR_SPAWNER, indexConstructorMonitorActor);
|
||||||
register(Actor.CONVERTER_MONITOR, converterMonitorFSM);
|
register(Actor.PROC_CONVERTER_SPAWNER, converterMonitorFSM);
|
||||||
register(Actor.LOADER_MONITOR, loaderMonitor);
|
register(Actor.PROC_LOADER_SPAWNER, loaderMonitor);
|
||||||
register(Actor.CRAWLER_MONITOR, crawlerMonitorActor);
|
register(Actor.PROC_CRAWLER_SPAWNER, crawlerMonitorActor);
|
||||||
register(Actor.MESSAGE_QUEUE_MONITOR, messageQueueMonitor);
|
|
||||||
register(Actor.PROCESS_LIVENESS_MONITOR, processMonitorFSM);
|
register(Actor.MONITOR_MESSAGE_QUEUE, messageQueueMonitor);
|
||||||
register(Actor.FILE_STORAGE_MONITOR, fileStorageMonitorActor);
|
register(Actor.MONITOR_PROCESS_LIVENESS, processMonitorFSM);
|
||||||
|
register(Actor.MONITOR_FILE_STORAGE, fileStorageMonitorActor);
|
||||||
|
|
||||||
register(Actor.ADJACENCY_CALCULATION, triggerAdjacencyCalculationActor);
|
register(Actor.ADJACENCY_CALCULATION, triggerAdjacencyCalculationActor);
|
||||||
register(Actor.CRAWL_JOB_EXTRACTOR, crawlJobExtractorActor);
|
register(Actor.CRAWL_JOB_EXTRACTOR, crawlJobExtractorActor);
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
package nu.marginalia.actor.monitor;
|
package nu.marginalia.actor.proc;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.Singleton;
|
import com.google.inject.Singleton;
|
||||||
import nu.marginalia.actor.ActorStateFactory;
|
import nu.marginalia.actor.ActorStateFactory;
|
||||||
|
import nu.marginalia.actor.monitor.AbstractProcessSpawnerActor;
|
||||||
import nu.marginalia.control.process.ProcessService;
|
import nu.marginalia.control.process.ProcessService;
|
||||||
import nu.marginalia.mq.persistence.MqPersistence;
|
import nu.marginalia.mq.persistence.MqPersistence;
|
||||||
import nu.marginalia.mqapi.ProcessInboxNames;
|
import nu.marginalia.mqapi.ProcessInboxNames;
|
@ -1,8 +1,9 @@
|
|||||||
package nu.marginalia.actor.monitor;
|
package nu.marginalia.actor.proc;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.Singleton;
|
import com.google.inject.Singleton;
|
||||||
import nu.marginalia.actor.ActorStateFactory;
|
import nu.marginalia.actor.ActorStateFactory;
|
||||||
|
import nu.marginalia.actor.monitor.AbstractProcessSpawnerActor;
|
||||||
import nu.marginalia.control.process.ProcessService;
|
import nu.marginalia.control.process.ProcessService;
|
||||||
import nu.marginalia.mq.persistence.MqPersistence;
|
import nu.marginalia.mq.persistence.MqPersistence;
|
||||||
import nu.marginalia.mqapi.ProcessInboxNames;
|
import nu.marginalia.mqapi.ProcessInboxNames;
|
@ -1,8 +1,9 @@
|
|||||||
package nu.marginalia.actor.monitor;
|
package nu.marginalia.actor.proc;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.Singleton;
|
import com.google.inject.Singleton;
|
||||||
import nu.marginalia.actor.ActorStateFactory;
|
import nu.marginalia.actor.ActorStateFactory;
|
||||||
|
import nu.marginalia.actor.monitor.AbstractProcessSpawnerActor;
|
||||||
import nu.marginalia.control.process.ProcessService;
|
import nu.marginalia.control.process.ProcessService;
|
||||||
import nu.marginalia.mq.persistence.MqPersistence;
|
import nu.marginalia.mq.persistence.MqPersistence;
|
||||||
import nu.marginalia.mqapi.ProcessInboxNames;
|
import nu.marginalia.mqapi.ProcessInboxNames;
|
@ -1,8 +1,9 @@
|
|||||||
package nu.marginalia.actor.monitor;
|
package nu.marginalia.actor.proc;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.Singleton;
|
import com.google.inject.Singleton;
|
||||||
import nu.marginalia.actor.ActorStateFactory;
|
import nu.marginalia.actor.ActorStateFactory;
|
||||||
|
import nu.marginalia.actor.monitor.AbstractProcessSpawnerActor;
|
||||||
import nu.marginalia.control.process.ProcessService;
|
import nu.marginalia.control.process.ProcessService;
|
||||||
import nu.marginalia.mq.persistence.MqPersistence;
|
import nu.marginalia.mq.persistence.MqPersistence;
|
||||||
import nu.marginalia.mqapi.ProcessInboxNames;
|
import nu.marginalia.mqapi.ProcessInboxNames;
|
@ -1,4 +1,4 @@
|
|||||||
package nu.marginalia.actor.monitor;
|
package nu.marginalia.actor.proc;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.Singleton;
|
import com.google.inject.Singleton;
|
@ -37,6 +37,26 @@
|
|||||||
{{> control/partials/actors-table }}
|
{{> control/partials/actors-table }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="m-3 p-3 border bg-light">
|
||||||
|
<h3 class="my-3">Actors</h3>
|
||||||
|
<p>
|
||||||
|
Actors are programs that primarily run within the executor services that keep their state on the
|
||||||
|
<a href="/message-queue">message queue</a>.
|
||||||
|
</p>
|
||||||
|
<h4 class="my-3">Monitors</h4>
|
||||||
|
<em>MONITOR_</em> actors perform maintenance duties, clean up stale events and heartbeats,
|
||||||
|
that sort of thing, typically waking up once a minute or so to perform some task.
|
||||||
|
<h4 class="my-3">Process Spawners</h4>
|
||||||
|
<em>PROC_..._SPAWNER</em> actors launch and observe independent processes, such as the crawler or loader.
|
||||||
|
They eavesdrop on the message queue for message to their corresponding process, and when such a message is detected,
|
||||||
|
the process is launched. Turning off these actors will terminate the associated process and set their instructions
|
||||||
|
messages to status dead, ensuring they will not re-spawn automatically.
|
||||||
|
<h4 class="my-3">Programs</h4>
|
||||||
|
There are other actors that act to orchestrate processing flows in the system. They enable long-running tasks
|
||||||
|
such as crawling to survive a system shutdown or some form of error.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
Loading…
Reference in New Issue
Block a user