Starting Situation
- Orders can be configured as permanent objects with the JobScheduler Master. Such orders are stored in XML files on disk.
- Orders can be configured as temporary orders, i.e. ad hoc orders, that are used to execute a job chain just once.
- Temporary orders are not stored in files on disk.
- The state of temporary orders is maintained with the JobScheduler database for restart capability.
- Typically temporary orders are created by jobs or scripts, e.g. creating some 10'000 orders from records in a database table.
- Should such jobs or scripts misbehave and hammer the JobScheduler Master with unwanted temporary orders then such orders can be managed by the CLI.
Use Cases
Add temporary orders
Adding ad hoc orders is a frequent use case, e.g. for testing purposes:
1..10 | Add-JobSchedulerOrder -JobChain /some_folder/some_job_chain
Explanations
- Adds 10 temporary ad hoc orders to the specified job chain, see
Add-JobSchedulerOrder
. - The order identification is not specified but is generated by the JobScheduler Master.
- All orders are submitted to the JobScheduler Master in a single transaction at the end of the bulk operation.
For better control of newly added orders it is recommended to create order objects like this:
$orders = ( 1..10 | Add-JobSchedulerOrder -JobChain /some_folder/some_job_chain -Immediate ) $orders | Remove-JobSchedulerOrder
Explanations
- Line 1 adds 10 temporary ad hoc orders.
- Consider use of the switch
-Immediate
to submit each order individually to the JobScheduler Master and to receive the newly created order identification immediately. - The result of the
Add-JobSchedulerOrder
cmdlet is assigned to a variable for later use.
- Consider use of the switch
- Line 2 pipes the recently created orders to the
Remove-JobSchedulerOrder
cmdlet.
Identify temporary orders
Before acting on temporary orders it is recommended to identify the order objects like this:
$orders = Get-JobSchedulerOrder -NoPermanent $orders.count
Explanations
- Line 1 retrieves exclusively temporary ad hoc orders by use of the
-NoPermanent
switch.- Consider use of additional parameters such as
-Directory
and-JobChain
to further restrict the number of orders. - The result of the
Get-JobSchedulerOrder
cmdlet is assigned to a variable for later use.
- Consider use of additional parameters such as
- Line 2 displays the number of orders that meet the conditions.
Suspend temporary orders
Suspending temporary orders allows to keep such orders for further investigation. Suspended orders are not carried out by the JobScheduler Master:
Get-JobSchedulerOrder -NoPermanent | Suspend-JobSchedulerOrder
Explanations
- In a pipelined operation temporary orders are retrieved and suspended, see
Suspend-JobSchedulerOrder
. - Consider use of additional parameters such as
-Directory
and-JobChain
to further restrict the number of orders.
$orders = Get-JobSchedulerOrder -NoPermanent $orders.count $orders $orders | Suspend-JobSchedulerOrder
Explanations
- Line 1 retrieves exclusively temporary ad hoc orders by use of the
-NoPermanent
switch.- Consider use of additional parameters such as
-Directory
and-JobChain
to further restrict the number of orders. - The result of the
Get-JobSchedulerOrder
cmdlet is assigned to a variable for later use.
- Consider use of additional parameters such as
- Line 2 displays the number of orders that meet the conditions.
- Line 3 displays the
$order
variable, i.e. the list of orders. - Line 4 pipes the list of orders to the
Suspend-JobSchedulerOrder
cmdlet,
Remove temporary orders
Removing temporary orders prevents JobScheduler Master from executing further job nodes of a job chain for that order.:
Get-JobSchedulerOrder -NoPermanent | Remove-JobSchedulerOrder
Explanations
- In a pipelined operation temporary orders are retrieved and removed, see
Remove-JobSchedulerOrder
. - Consider use of additional parameters such as
-Directory
and-JobChain
to further restrict the number of orders. - Tasks that are currently running for an order are not affected by this operation. Such tasks will continue until completion. Consider use of the
Stop-JobSchedulerTask
cmdlet to kill running tasks.