Following a Job
Introduction
Jobs are potentially time consuming operations, that are executed sequentially in a job queue. The work is performed by a plug-in. Activities in the job queue can be followed by selecting View -> Jobs in the menu. This page describes some job properties that are displayed, and various ways to affect the execution of created jobs.
Jobs Table Overview
The Jobs table shows some selected properties of the jobs. By default it shows the jobs sorted after the time they were created, i.e. the most recently created job is at the top of the table.
The table header shows the number of pending jobs for the logged-in user, and what job queues they are assigned to. A pending job is a job that has not ended, i.e. that does not have its end time set. For each job queue three numbers are shown inside a square bracket: number of own pending jobs, number of all pending jobs, and number of third-party pending jobs before first own pending job.
To change what job properties are shown, and the sorting order, click on the table icon in the top left corner of the table header to make the table "Configure" pop-up dialog appear. After changing the settings, click the "Apply" button to make them active. To close the "Configure" pop-up dialog without making any changes, click on the close button in the top right corner of the header of the pop-up dialog.
To filter the table contents, enter a filter command in the filter entry field below the column name, and click on the "Update" tool-bar button. Filter commands may by added to several columns, in which case only those table entries consistent with all filter conditions will be shown.
Job Properties
Name
Name of the job set by the action class creating it. May contain information on input and output items, but sometimes this is put in the "Description" field instead.
Status
The status reported in the job table will not update automatically when the job status changes. To follow the execution of a job, click tool-bar button Update to update the displayed information. The following status types exist:
| Status | Description | Pending job |
| WAITING | A job waiting to be executed. | Yes |
| EXECUTING | A job that is currently executed. | Yes |
| ABORTING | An executing job that has been requested to abort by the user. Only jobs controlled by a plug-in that supports the abort operation can have this status. It is up to the plug-in to terminate the job after the abort command has been given. | Yes |
| DONE | A job that has terminated in an expected way. | No |
| ERROR | A job that has terminated reporting an error. | No |
| ABORTED | 1. A waiting job aborted by the user. 2. An executing job that was successfully aborted by the user. 3. An executing job that was aborted by server shutdown. | No |
Status Message
Message set by the plug-in for a finished job. May contain information on whether the operation was successful or not, created items, etc.
Estimated Execution Time
When a job is created, an estimated execution time range is set, based on the type of plug-in. There is no guarantee that the actual execution time will lie inside the estimated range. Assignment of job queue is made based on the estimated execution time.
| Estimated Execution Time | Time range |
| SHORTEST | < 1 minute |
| SHORT | 1-10 minutes |
| MEDIUM | < 1 hour |
| LONG | > 1 hour |
Job Queues
Pending jobs are assigned to a job queue, where the jobs are executed in order. Only one job in each queue may be executed at a specific time. Sometimes a chain of jobs are created together, where the output of one job is used as input to another. It is therefore essential that the jobs in the chain are executed in the correct order. A job that must be executed before another job in the chain is said to be a blocker of the later. When a job is loaded in a job queue, any blockers of the job in question are loaded first.
A job queue may support a number of estimated execution times. Waiting jobs are automatically loaded into a job queue supporting the estimated execution time of the jobs. Jobs having the same estimated execution time are loaded in the job queue in the order the jobs were created (blockers may break this rule). A job scheduler starts execution of the jobs in the job queues.
Currently the following job queues exist:
| Job queue | Description | Supported Estimated Execution Times |
| 0 | High priority queue | - |
| 1 | Fast-job queue | SHORTEST |
| 2 | Slow-job queue | SHORT, MEDIUM, LONG |
A job will never be automatically assigned to the high priority queue, but may be placed there by special request of the user. Note that it is only the waiting time before start of execution that may depend on the job queue, a single job will take the same time to be executed whatever job queue it was assigned to.
Actions related to Tool-bar Buttons
Update
Updates the jobs table to show the current status of the jobs.
Export to File
Allows the job table contents to be exported to a file. An "Export mode" pop-up dialog will appear, where one can select whether only shown items or all items should be included in the export.
Put job in high priority queue
Expects one or more pending jobs to be selected by clicking their check boxes before starting the action. Allows the selected job/jobs to be moved to the high priority queue. If a job has one or more blockers, the latter are also moved to the high priority queue. The contents of the high priority queue only exists until the server is restarted, after which pending jobs will be automatically assigned to a job queue based on the estimated execution time of the jobs and the job creation time.
Running several jobs at the same time is not guaranteed to succeed, even if the jobs do not depend on the output of each other. Search jobs where the plug-in uses an external search engine may be restricted by the latter only accepting a limited number of searches at the same time. It is left to the user to decide whether it is advisable to move a specific job to the high priority queue to run it in parallel with another job.
Delete
Expects one or more non-pending jobs to be selected by clicking their check boxes before starting the action. Allows the selected job/jobs to be marked as removed and moved to the trashcan. A job marked for removal can be restored from the trashcan (menu View -> Trash -> Jobs) before the latter has been emptied (menu Edit -> Empty Trash).
Abort
Expects one or more pending jobs to be selected by clicking their check boxes before starting the action. Waiting jobs will change status to ABORTED and have its end time set. If the plug-in of an executing job supports the abort operation the plug-in will be signalled to terminate, and the job will change status to ABORTING. After an aborting job has terminated, its status will be changed to ABORTED.
There is no simple way to force an executing job to terminate instantly, except to stop the Tomcat server, and re-start Proteios. However, this will affect all jobs of all users, and is a drastic measure.
Job E-mail Notification
When jobs take a long time to finish, or many jobs lie before the job of interest in the job queue, it may be practical to configure Proteios to notify when jobs have finished. Menu File -> Preferences... makes the "Preferences" form appear, with a "Notification Configuration" pane. For mail notification to work, Proteios must have been configured at installation time what mail server to use. The settings that can be entered will apply for the current user, until changed.
E-mail notification settings:
| Setting | Description | Pre-configured | Comment |
| Mail server | IP-address of mail server to use | Yes | |
| From (address) | Set to "noreply@" followed by name of Proteios server, e.g. noreply@example.com | Yes | |
| From (name) | Name used in "from"-field of sent e-mail | No | Default is "Proteios" |
| To (address) | E-mail address to send notification e-mail to | No | |
| Use notification: | Case when a finished job should trigger an e-mail notification to be sent Never After every finished job After all jobs finished | No | Default is Never |
Press tool-bar button "Save" to save changes. A sent notification e-mail will identify the job in the "Subject" line, and the contents will contain the status message of the finished job.
