Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

Directory Monitoring

...

Excerpt

JobScheduler can monitor file creation

, file changes and timestamp changes

with a (standalone) job and with an order (and a job chain).

In this article the filewatching directory monitoring using a standaloe standalone job is described.
For further information on how to use file events watching with a job chain we recommend to read the reading Directory Monitoring with File Orders.

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

An example configuration for monitoring a "file-watcher"directory:

Code Block
languagehtml/xml

<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 monitor the folder c:/temp on a Windows Windows® operating system. The regular expression is  is used to define which file(s) JS JobScheduler has to watch. In this example the regex means that every event involving regular expression means that on a directory change (deleting, renaming, adding any file) the job will be startet when the files file1.xml and/or file2.xml will fire the execution of the embedded script (which in this case will echo values for JS-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. is in content of the directory. 

The SCHEDULER_TASK_TRIGGER_FILES environment variable contains the names of all the filtered files in the c:/temp folder that matches the regular expression at the time where the task is started. These files are held in the form of when the directory was changed- it does contain the name of the file that triggered the embedded script only in the case the file matches the regular expression. The file names are maintained in a semicolon separated list. This list doesn't just contain the file which was changed.

Note that this behaviour could be critical when two files (e.g. file1.xml and file2.xml) are changed created 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:

Image Added


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

Image Added

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

See also