Hold job is a processor that offers various time-based schemes for holding and releasing jobs and for distributing jobs across multiple outgoing connections.
Keywords can be used with the search function above the Elements pane.
The keywords for the Hold job element are:
Hold job allows any number of outgoing move connections and offers additional properties on each of those connections.
The following properties are provided for each of the outgoing connections in addition to the basic connection properties.
Property |
Description |
---|---|
Connection priority |
The priority of this connection; a greater number indicates a higher priority; at any given time only the eligible connections with the highest priority will receive jobs |
Folder constraint |
If set to yes, this connection is eligible to receive jobs only when certain constraints on the target folder (specified in the subordinate properties) are met |
Maximum job count |
This connection receives a job as long as its target folder contains no more than this number of jobs after adding the job; a zero value means this constraint is disabled |
Maximum file count |
This connection receives a job as long as its target folder contains no more than this number of files after adding the job; a zero value means this constraint is disabled |
Maximum folder size (MB) |
This connection receives a job as long as its target folder's size does not exceedthis limit after adding the job; a zero value means this constraint is disabled |
Target folder |
The absolute path of the folder that should be checked for job count and/or
size; Default means the connection's target
folder
Note: Whenever a job arrives in the
Hold job tool, Switch
checks the Target folder. Jobs that are in between
the Hold job tool and the
Target folder are not taken into account for the
constraint. To make sure that there are no jobs in
between the Hold job tool
and the Target folder, space the jobs apart for a
certain period of time.
|
Time-of-day window |
If set to yes, this connection is eligible to receive jobs only during a certain time of the day (specified in the corresponding properties) |
Allow from (hh:mm) |
The time-of-day window during which to receive jobs; the values are structured as "hh:mm" (hours, minutes) indicating a time of day on a 24 hour clock; an empty value means midnight; two identical values mean the connection is always eligible |
Allow to (hh:mm) |
|
Day-of-week window |
If set to yes, this connection is eligible to receive jobs only during certain days of the week (specified in the subordinate properties) |
Allow from |
The days of the week (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) during which to receive jobs; two identical values mean the connection is eligible for that 1 single day |
Allow to |
|
Day-of-month window |
If set to yes, this connection is eligible to receive jobs only during a certain day of the month (specified in the subordinate properties) |
Day |
The day in the month during which to receive jobs, as a number in the range [1 .. 31]; the default value of one means the first or the last day of the month (depending on the following property) |
Relative to |
Determines whether the day of the month is relative to "Start of month'" or "End of the month" |
Space jobs apart |
If set to yes, jobs moving over this connection are spaced apart by a minimum period of time (specified in the subordinate properties); example: after the connection receives a job it becomes eligible to receive another job only after the specified period of time has passed |
Unit | Select the unit for the subsequent property: Seconds, Minutes, Hours, Days |
Delay | The spacing delay in the units indicated by the previous property |
The scheduling algorithm is executed whenever a new job arrives, at regular intervals:
Determine J, the set of eligible jobs, to include all incoming jobs that have fully arrived and that have waited for at least the delay specified for the job (if any).
If J is empty, there are no jobs to be moved – terminate.
Sort the jobs in J on priority (higher priority first) and within the same priority on arrival stamp (earliest arrival first).
For each job in J, in the sorted order, perform these steps:
Consider A to be the set of outgoing connections.
Determine B as the subset of A containing connections that can accept the job at this time (that is, the connection is not on hold and none of its constraints are violated).
If B is empty, the job can not be moved at this time – skip to next job.
Determine C as the subset of B containing all connections with the highest priority that occurs within B. By definition all connections in C have the same priority and C is non-empty.
Select one of the connections in C according to the selected algorithm (cyclic or random).
Move the job along this connection.