Table of Contents |
---|
Starting Situation
- Jobs might want to add events.
- A number of events might be available with JobScheduler and should be removed.
Use Cases
Add events from a job
The PowerShell CLI can be used by jobs to submit events. Usually separate job steps or monitor scripts are used as e.g. with
- the JITL job JobSchedulerSubmitEventJob
- the JITL monitor JobSchedulerSubmitEventMonitor
Instead of additional job steps or monitors monitor scripts the Add-
EventJobSchedulerEvent
cmdlet can be used to create events directly within a job:
Code Block | ||
---|---|---|
| ||
<?xml version="1.0" encoding="ISO-8859-1"?> <job order="yes" stop_on_error="no"> <script language="powershell"> <![CDATA[ Import-Module JobScheduler Add-EventJobSchedulerEvent -EventClass $spooler_task.order().job_chain().name() -EventId "started_$($spooler_job.name())" echo "job: $($spooler_job.name())" Add-EventJobSchedulerEvent -EventClass $spooler_task.order().job_chain().name() -EventId "completed_$($spooler_job.name())" ]]> </script> <run_time /> </job> |
...
- The job creates two events that signal start and completion of the job.
- A common event class is used that is assigned the path of the job chain
- Individual event ids are assigned that are created from the job name
- All communication with the JobScheduler Supervisor or Master takes place by internal commands, no additional HTTP/HTTPS connection is used.
Manage events from the command line
The PowerShell CLI can be used to create, retrieve and remove events
Code Block | ||
---|---|---|
| ||
# add an arbitrary event $event = Add-EventJobSchedulerEvent -EventClass daily_closing -EventId 12345678 # wait for the event service to process the request Start-Sleep -Seconds 3 # check the list of events $events = Get-EventJobSchedulerEvent $events # remove the newly created event $event | Remove-EventJobSchedulerEvent # think twice before removing all events Get-EventJobSchedulerEvent | Remove-EventJobSchedulerEvent |
Explantions
- The
Add-EventJobSchedulerEvent
cmdlet returns an event object that can be used for later pipelining - Event processing occurs asynchroneously, therefore newly created events might take some seconds to be available for retrieval..
- The
Get-EventJobSchedulerEvent
cmdlet retrieves an array of event objects that are available with JobScheduler. - A previously created event object can be pipelined to the
Remove-EventJobSchedulerEvent
cmdlet. - In a more general sense all events as returned from
Get-EventJobSchedulerEvent
can be pipelined to theRemove-EventJobSchedulerEvent
cmdlet.