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

Compare with Current View Page History

« Previous Version 34 Next »

File Watching

JobScheduler can monitor file creation, file deletion, file changes and timestamp changes (aka file events) with a (standalone) job and with an order (and a job chain). In this article the file watching using a standalone job is described.
For further information on how to use file events with a job chain we recommend reading Directory Monitoring with File Orders.

This job can then start a job chain or job group.

An example configuration for a "file-watcher":

<job name = "scheduler_file_notification_1">
<script language="shell">
<![CDATA[
                set
                echo %SCHEDULER_JOB_NAME%
                echo %SCHEDULER_TASK_TRIGGER_FILES%
                rem del %SCHEDULER_TASK_TRIGGER_FILES%
            ]]>
</script>
<start_when_directory_changed directory = "c:/temp" regex = "^file\.xml$"/>
</job>

This job will watch the folder c:/temp on a Microsoft Windows ® operating system. The regular expression is used to define which file(s) JobScheduler has to watch. In this example the regex means that every event involving the files file1.xml and/or file2.xml will fire the execution of the embedded script (which in this case will echo values for JobScheduler environment variables to stdout).

Every change of files in the folder c:/temp which is matched by the filter ^file1\.xml$ starts a task for the job.

The SCHEDULER_TASK_TRIGGER_FILES environment variable contains the names of all the filtered files in the c:/temp folder at the time when the task was started - it doesn't just contain the name of the file that triggered the embedded script. The file names are maintained in a semicolon separated list.

Note that this behaviour could be critical when two files (e.g. file1.xml and file2.xml) are changed at the same time.

  • Two tasks will then be started for the job.
  • In the first task the environment variable SCHEDULER_TASK_TRIGGER_FILES will have the value c:/temp/file1.xml;c:/temp/file2.xml.
  • In the second task the environment variable SCHEDULER_TASK_TRIGGER_FILES will have a value that depends on what the first task has done with the files.
  • If, for example, the first task deletes the files in c:/temp then SCHEDULER_TASK_TRIGGER_FILES will be empty for the second task.

 

Set up as a standalone job in the JobScheduler editor JOE the script will look like this:


The directory settings and regular expression settings are entered in the 'FileWatcher' tab in JOE as follows:

For further information on how to use file events with a job chain we recommend reading Directory Monitoring with File Orders.

See also

  • No labels