这些示例为作业提供常见的使用情景。
前提条件:
创建简单的作业
此 JSON 文件创建了一项没有计划的简单作业。
-
使用以下内容创建 JSON 文件。
{ "id": "my-job", "description": "A job that sleeps", "run": { "cmd": "sleep 1000", "cpus": 0.01, "mem": 32, "disk": 0 } } -
从 DC/OS CLI 中添加作业。
dcos job add <my-job>.json或者,使用 API 添加作业。
curl -X POST -H "Content-Type: application/json" -H "Authorization: token=$(dcos config show core.dcos_acs_token)" $(dcos config show core.dcos_url)/service/metronome/v1/jobs -d@/Users/<your-username>/<myjob>.json
使用计划创建工作
-
使用以下内容创建 JSON 文件。
{ "id": "my-scheduled-job", "description": "A job that sleeps on a schedule", "run": { "cmd": "sleep 20000", "cpus": 0.01, "mem": 32, "disk": 0 }, "schedules": [ { "id": "sleep-nightly", "enabled": true, "cron": "20 0 * * *", "concurrencyPolicy": "ALLOW" } ] } -
添加作业。
dcos job add <my-scheduled-job>.json
使用 API 创建作业并关联计划
-
使用 上述说明 添加没有计划的作业。
-
使用以下内容创建 JSON 文件。这是您作业的时间表。
{ "concurrencyPolicy": "ALLOW", "cron": "20 0 * * *", "enabled": true, "id": "nightly", "nextRunAt": "2016-07-26T00:20:00.000+0000", "startingDeadlineSeconds": 900, "timezone": "UTC" } -
添加计划并将其与作业关联。
通过 DC/OS CLI:
dcos job schedule add <job-id> <schedule-file>.json通过 API:
curl -X POST -H "Content-Type: application/json" -H "Authorization: token=$(dcos config show core.dcos_acs_token)" $(dcos config show core.dcos_url)/service/metronome/v1/jobs/<job-id>/schedules -d@/Users/<your-username>/<schedule-file>.json
您可以将计划与多项作业相关联。
创建分区作业环境
此例中,使用 DC/OS UI 创建分区作业环境。这允许您限制每项作业或每个作业组的用户访问。作业是在名为 batch 的作业组中创建,该作业组是名为 dev. 作业组的子级。
├── dev
├── batch
├── job1
├── job2
然后作业组被分配给用户 Cory 和 Alice 以限制访问的权限。
前提条件:
- 您必须以 身份登录。
superuser.
-
以具有
superuser权限的用户身份登录 DC/OS UI。
图 1. DC/OS Enterprise 登录
-
创建分区作业。
-
选择 Jobs,然后单击 CREATE A JOB。
-
在 ID 字段中,键入
dev.batch.job1. -
在 Command 字段中,键入
sleep 1000(或其他有效的 shell 命令)并单击 CREATE A JOB。
图 2. 新作业屏幕
这将在 DC/OS 中的此目录结构中创建作业:Jobs > dev > batch > job1。
-
单击右上角的 + 图标创建另一项作业。

图 3. 创建另一项作业
-
在 ID 字段中,键入
dev.batch.job2. -
在 Command 字段中,键入
sleep 1000(或其他有效的 shell 命令)并单击 CREATE A JOB。您应该有两项作业:
图 4. Jobs > dev > batch screen
-
-
运行作业。
-
单击 Jobs > dev > batch > job1,然后单击 Run Now。

图 5. 立即运行 菜单
-
单击 Jobs > dev > batch > job2,然后单击 Run Now。
-
-
为作业分配权限。
-
选择 Organization > Users 并创建名为
Cory和Alice. 的新用户。
图 6. 创建新用户
-
选择用户 Cory 并授予访问 的权限。
job1. -
从 Permissions 选项卡中,单击 ADD PERMISSION,然后切换 INSERT PERMISSION STRING 按钮以手动输入权限。

图 7. 为用户“Cory”添加权限
-
在 Permissions Strings 字段中复制并粘贴权限。指定您的作业组 (
dev/batch)、作业名称 (job1) 和操作 (read). 操作可以是create、read、update、delete或full. 若要允许多个操作,请使用逗号分隔它们,例如:dcos:service:metronome:metronome:jobs:/dev.batch.job1 read,update.dcos:adminrouter:service:metronome full dcos:service:metronome:metronome:jobs:dev.batch.job1 read dcos:adminrouter:ops:mesos full dcos:adminrouter:ops:slave full dcos:mesos:master:framework:role:* read dcos:mesos:master:executor:app_id:/dev/batch/job1 read dcos:mesos:master:task:app_id:/dev/batch/job1 read dcos:mesos:agent:framework:role:* read dcos:mesos:agent:executor:app_id:/dev/batch/job1 read dcos:mesos:agent:task:app_id:/dev/batch/job1 read dcos:mesos:agent:sandbox:app_id:/dev/batch/job1 read -
单击 ADD PERMISSIONS,然后单击 Close。
-
对用户 Alice 重复这些步骤 ,在权限中,将
job1替换为job2
-
-
退出并以新用户身份重新登录以验证权限。用户现在应该在 Jobs 选项卡内具有对
dev/batch/job1和dev/batch/job2的指定访问级别。例如,如果您以 Alice 身份登录,您只能看到 jobs2:
图 8. “Alice”的限制性查看
创建要加入容器网络的作业
要使作业加入网络,请指定“网络”字段。以下作业加入 dcos 网络,输出其 IP 信息,然后进入休眠:
```json
{
"id": "networking-job",
"description": "A job that outputs network info and sleeps",
"run": {
"cmd": "ip a; sleep 60",
"docker": {
"image": "alpine"
},
"networks": [{"mode": "container", "name": "dcos"}],
"cpus": 0.01,
"mem": 32,
"disk": 0
}
}
```
networks 字段的工作方式与 Marathon 中的 networks 字段相同。
DC/OS文档