Skip to content

Instantly share code, notes, and snippets.

@kinow
Created February 17, 2021 21:36
Show Gist options
  • Save kinow/ed3de3de44c3b06e53129bd2733b9199 to your computer and use it in GitHub Desktop.
Save kinow/ed3de3de44c3b06e53129bd2733b9199 to your computer and use it in GitHub Desktop.
query
subscription OnWorkflowDeltasData($workflowId: ID) {
deltas(workflows: [$workflowId], stripNull: true) {
...WorkflowTreeDeltas
__typename
}
}
fragment WorkflowTreeDeltas on Deltas {
id
shutdown
added {
...WorkflowTreeAddedData
__typename
}
updated {
...WorkflowTreeUpdatedData
__typename
}
pruned {
...WorkflowTreePrunedData
__typename
}
__typename
}
fragment WorkflowTreeAddedData on Added {
workflow {
...WorkflowData
cyclePoints: familyProxies(ids: ["root"], ghosts: true) {
...CyclePointData
__typename
}
taskProxies(sort: {keys: ["name"], reverse: false}, ghosts: true) {
...TaskProxyData
jobs(sort: {keys: ["submit_num"], reverse: true}) {
...JobData
__typename
}
__typename
}
familyProxies(exids: ["root"], sort: {keys: ["name"]}, ghosts: true) {
...FamilyProxyData
__typename
}
__typename
}
cyclePoints: familyProxies(ids: ["root"], ghosts: true) {
...CyclePointData
__typename
}
familyProxies(exids: ["root"], sort: {keys: ["name"]}, ghosts: true) {
...FamilyProxyData
__typename
}
taskProxies(sort: {keys: ["name"], reverse: false}, ghosts: true) {
...TaskProxyData
__typename
}
jobs(sort: {keys: ["submit_num"], reverse: true}) {
...JobData
__typename
}
__typename
}
fragment WorkflowTreeUpdatedData on Updated {
taskProxies(ghosts: true) {
...TaskProxyData
__typename
}
jobs {
...JobData
__typename
}
familyProxies(exids: ["root"], ghosts: true) {
...FamilyProxyData
__typename
}
__typename
}
fragment WorkflowTreePrunedData on Pruned {
jobs
taskProxies
familyProxies
__typename
}
fragment WorkflowData on Workflow {
id
name
status
owner
host
port
__typename
}
fragment CyclePointData on FamilyProxy {
id
cyclePoint
__typename
}
fragment FamilyProxyData on FamilyProxy {
id
name
state
cyclePoint
firstParent {
id
name
cyclePoint
state
__typename
}
__typename
}
fragment TaskProxyData on TaskProxy {
id
name
state
isHeld
cyclePoint
latestMessage
firstParent {
id
name
cyclePoint
state
__typename
}
task {
meanElapsedTime
name
__typename
}
__typename
}
fragment JobData on Job {
id
firstParent: taskProxy {
id
__typename
}
jobRunnerName
jobId
host
startedTime
submittedTime
finishedTime
state
submitNum
taskProxy(stripNull: false) {
outputs (satisfied: true, sort: { keys: ["time"], reverse: true}) {
label
message
time
__typename
}
__typename
}
__typename
}
#!Jinja2
{% set N_MSGS = 10 %}
[scheduling]
[[graph]]
R1 = """
{% for I in range(0,N_MSGS) %}
foo:file_{{I}} & bar:blob_{{I}} => baz
{% endfor %}
"""
[runtime]
[[foo]]
script = """
{% for I in range(0,N_MSGS) %}
cylc message "File {{I}} ready"
sleep 5
{% endfor %}
"""
[[[outputs]]]
{% for I in range(0,N_MSGS) %}
file_{{I}} = "File {{I}} ready"
{% endfor %}
[[bar]]
script = """
{% for I in range(0,N_MSGS) %}
cylc message "Blob {{I}} ready"
sleep 10
{% endfor %}
"""
[[[outputs]]]
{% for I in range(0,N_MSGS) %}
blob_{{I}} = "Blob {{I}} ready"
{% endfor %}
[[baz]]
script = "sleep 20"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment