如何检查跑步者当前是否 运行 使用工作 API 的工作
How to check if runner is currently running a job using jobs API
我想检查哪些跑步者目前是 运行 工作,但我找不到任何可以使用 API 给我此信息的信息。
我知道哪些是活跃的并且可以工作但不知道那些实际上是运行他们在当前时间。
所以我的问题是,我如何确定哪些跑步者当前正在处理工作
您可以列出所有跑步者,获取他们的 ID,然后为每个跑步者检查是否有状态为 running
:
的工作
- List all runners API 使用
/runners/all
- List Runner jobs 使用
/runners/$runner_id/jobs?status=running
以下bash script uses curl and jq:
#!/bin/bash
token=YOUR_TOKEN
domain=your.domain.com
ids=$(curl -s -H "PRIVATE-TOKEN: $token" "https://$domain/api/v4/runners/all" | \
jq '.[].id')
set -- $ids
for i
do
result=$(curl -s \
-H "PRIVATE-TOKEN: $token" \
"https://$domain/api/v4/runners/$i/jobs?status=running" | jq '. | length')
if [ $result -eq 0 ]; then
echo "runner $i is not running jobs"
else
echo "runner $i is running $result jobs"
fi
done
输出:
runner 6 is not running jobs
runner 7 is running 1 jobs
runner 8 is not running jobs
使用python:
import requests
import json
token = "YOUR_TOKEN"
domain = "your.domain.com"
r = requests.get(
f'https://{domain}/api/v4/runners/all',
headers = { "PRIVATE-TOKEN": token }
)
ids = [ i["id"] for i in json.loads(r.text) ]
for i in ids:
r = requests.get(
f'https://{domain}/api/v4/runners/{i}/jobs?status=running',
headers = { "PRIVATE-TOKEN": token }
)
num_jobs = len(json.loads(r.text))
if num_jobs > 0:
print(f'runner {i} is running {num_jobs} jobs')
else:
print(f'runner {i} is not running jobs')
我想检查哪些跑步者目前是 运行 工作,但我找不到任何可以使用 API 给我此信息的信息。
我知道哪些是活跃的并且可以工作但不知道那些实际上是运行他们在当前时间。
所以我的问题是,我如何确定哪些跑步者当前正在处理工作
您可以列出所有跑步者,获取他们的 ID,然后为每个跑步者检查是否有状态为 running
:
- List all runners API 使用
/runners/all
- List Runner jobs 使用
/runners/$runner_id/jobs?status=running
以下bash script uses curl and jq:
#!/bin/bash
token=YOUR_TOKEN
domain=your.domain.com
ids=$(curl -s -H "PRIVATE-TOKEN: $token" "https://$domain/api/v4/runners/all" | \
jq '.[].id')
set -- $ids
for i
do
result=$(curl -s \
-H "PRIVATE-TOKEN: $token" \
"https://$domain/api/v4/runners/$i/jobs?status=running" | jq '. | length')
if [ $result -eq 0 ]; then
echo "runner $i is not running jobs"
else
echo "runner $i is running $result jobs"
fi
done
输出:
runner 6 is not running jobs
runner 7 is running 1 jobs
runner 8 is not running jobs
使用python:
import requests
import json
token = "YOUR_TOKEN"
domain = "your.domain.com"
r = requests.get(
f'https://{domain}/api/v4/runners/all',
headers = { "PRIVATE-TOKEN": token }
)
ids = [ i["id"] for i in json.loads(r.text) ]
for i in ids:
r = requests.get(
f'https://{domain}/api/v4/runners/{i}/jobs?status=running',
headers = { "PRIVATE-TOKEN": token }
)
num_jobs = len(json.loads(r.text))
if num_jobs > 0:
print(f'runner {i} is running {num_jobs} jobs')
else:
print(f'runner {i} is not running jobs')