wiki:FollowingAJob

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.

Last modified 12 years ago Last modified on Aug 7, 2009, 8:55:18 AM