Servers
Using Application Jobs
Overview
Application Jobs allow you to define and schedule regular tasks (shell commands) that will run against your Cloud 66 application's services (i.e inside your containers). Commands run using the sh
shell by default. Each time an application job runs, it starts a new container from the service, executes the task and then destroys the container.
If you need to run a job on the underlying server, rather than the service, you should use Server Jobs instead.
Adding a new application job
To add a new application job:
- Click the Jobs tab from your Application Overview
- Click on the button for the type of job you wish to add
- Give give your new job a name
- Specify the command(s) you want to run and the user
- Set a schedule for the job - you can use cron syntax for more control over your scheduling
- Click Save
You will now see your new job listed in your Application Overview. You can edit it by clicking on the small downward arrow. Your run results (success, failure and any output) can be seen in real-time on the job detail page.
Using parameters
When you run a job you can pass it parameters (if it is written to accept them).
Notation
Jobs use a facility in the shell called positional parameters. Positional parameters are a series of special variables ($1, $2 ... $n) that contain the contents of the command line. Where n is greater than 9 using braces. For example, to refer to the 15th positional parameter, use the notation ${15}
.
cp $1 $2
ls $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11}
Default values
You can handle default value for the parameter with following notation: ${n:-YOUR_DEFAULT_VALUE}
.
Example below cp file $1
to tmp
directory by default
cp $1 ${2:-/tmp}
Passing parameters to a job
Since job is using positional parameters pass you arguments in order, eg: if you pass arg1
arg2
, $1
would contain arg1
and $2
would contain arg2
You can also quote your argument if there is a space in the value.
Example
Job command | cp $1 ${2:-/tmp} |
Passing arguments via dashboard | "log*.txt" tmp/logs |
Passing arguments via Toolbelt | --arg "log*.txt" -- arg tmp/logs |