This section gives an overview of plug-ins, jobs and job agents.
The PluginDefinitionData
About
There are five main types of plug-ins:
IMPORT (mainType = 1): A plug-in that imports data to BASE.
EXPORT (mainType = 2): A plug-in that exports data from BASE.
INTENSITY (mainType = 3): A plug-in that calculates intensity values from raw data.
ANALYZE (mainType = 4): A plug-in that analyses data.
OTHER (mainType = 5): Any other plug-in.
A plug-in may have different configurations. The flags supportsConfigurations and requiresConfiguration are used to specify if a plug-in must have or can't have any configurations. Configuration parameter values are versioned. Each time anyone updates a configuration the version number is increased and the parameter values are stored as a new entity. This is required because we want to be able to know exactly which parameters a job were using when it was executed. When a job is created we also store the parameter version number (JobData.parameterVersion). This means that even if someone changes the configuration later we will always know which parameters the job used.
The PluginTypeData
AutoDetectingImporter
AnalysisFilterPlugin
A job represents a single invokation of a plug-in to do some work.
The JobData
UNCONFIGURED (status = 0): The job is not yet ready to be executed.
WAITING (status = 1): The job is waiting to be executed.
PREPARING (status = 5): The job is about to be executed but hasn't started yet.
EXECUTING (status = 2): The job is currently executing.
DONE (status = 3): The job finished successfully.
ERROR (status = 4): The job finished with an error.
A job agent is a program running on the same or a different server that
is regularly checking for jobs that are waiting to be executed. The
JobAgentData
JobAgentSettingsData
Specify exactly which plug-ins it will execute. For example, it is possible to dedicate one agent to only run one plug-in.
Give some plug-ins higher priority. For example a job agent that is mainly used for importing data should give higher priority to all import plug-ins. Other types of jobs will have to wait until there are no more data to be imported.
Specify exactly which users/groups/projects that may use the agent. For example, it is possible to dedicate one agent to only run jobs for a certain project.