You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

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 are used as e.g. with

Instead of additional job steps or monitors the Add-Event cmdlet can be used to create events directly within a job:

 

<?xml version="1.0" encoding="ISO-8859-1"?>
<job  order="yes" stop_on_error="no">
    <script  language="powershell">
        <![CDATA[
Import-Module JobScheduler

Add-Event -EventClass $spooler_task.order().job_chain().name() -EventId "started_$($spooler_job.name())"

echo "job: $($spooler_job.name())"

Add-Event -EventClass $spooler_task.order().job_chain().name() -EventId "completed_$($spooler_job.name())"
        ]]>
    </script>
    <run_time />
</job>

Explanations

  • 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

# add an arbitrary event
$event = Add-Event -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-Event
$events
 
# remove the newly created event
$event | Remove-Event
 
# think twice before removing all events
Get-Event | Remove-Event

Explantions

  • The Add-Event 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-Event cmdlet retrieves an array of event objects that are available with JobScheduler.
  • A previously created event object can be pipelined to the Remove-Event cmdlet.
  • In a more general sense all events as returned from Get-Event can be pipelined to the Remove-Event cmdlet.
  • No labels