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

Compare with Current View Page History

« Previous Version 16 Next »

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 filewatching using a standaloe job is described.
For further information on how to use file events with a job chain we recommend to read the 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[1|2]\.xml$"/>
</job>

This job will watch the folder c:/temp on a Microsoft Windows ® operating system. The regular expression (regex) 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. This list doesn't just contain the name of the file that triggered the embedded script.
The file names are held in the form of 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.

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

See also:

  • No labels