Skip to content
Abbas Razaghpanah edited this page May 6, 2015 · 3 revisions

Scheduler

Each client downloads a list of scheduled experiments everytime it syncs with the server. A python experiment file will have to be in the scheduler in order to be executed, otherwise it will be ignored. The scheduler is a JSON file found under ~/.centinel/experiments/scheduler.info.

In order to schedule an experiment, it should be a dictionary entry in the root of scheduler.info, pointing to a dictionary of parameters and options:

{
  "global_test": {
    "frequency": 3600,
    "python_exps": {
      "baseline": {
        "params": {
          "traceroute_methods": [
            "tcp",
            "udp"
          ]
        },
        "input_files": [
          "country.csv",
          "worldwide.csv",
          "product_x.csv"
        ]
      }
    },
    "last_run": 0
  }
}

Mandatory parameters

frequency is the frequency for running the experiment in seconds. It is a mandatory parameter.

last_run is the time (in seconds from epoch) the experiment was last run. This parameter is mandatory, but is usually set to zero when entry is created.

Optional parameters

python_exps is a dictionary of all python experiments that should be run for this scheduler entry. It is a dictionary with experiment name as the key (name = "http_request", and not http.py), containing input_files (optional, defaults to class-specified filenames), which is a list of input files, and params (also optional) which is a dictionary containing parameters that are to be passed to the experiments. If python_exps is not specified, the client will try to load a pyhton experiment named as the entry name (e.g. global_baseline here)