Skip to content

requirements in discovered workflows is opt-in - #260

Merged
woutdenolf merged 1 commit into
mainfrom
requirements_on_workflow_discovery_optional
Oct 7, 2026
Merged

woutdenolf merged 1 commit into
mainfrom
requirements_on_workflow_discovery_optional

Conversation

@woutdenolf

@woutdenolf woutdenolf commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

PR summary

Remove requirements gathering by default as it takes time and also the requirements in the locally cached workflows could get out of sync with the worker.

AI Disclosure

  • No AI used
  • AI tool Clause used for adding tests

@woutdenolf
woutdenolf requested a review from a team October 1, 2026 09:32
@codecov

codecov Bot commented Oct 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@woutdenolf

woutdenolf commented Oct 1, 2026 •

Copy link
Copy Markdown
Member Author

Claude produced this server startup profiling (worker: bes, ewoksmx, ewoksid31, blissoda):

Category Fresh + requirements Fresh + no requirements Cached + requirements Cached + no requirements
Import ewoksserver 4.9 s 4.7 s 4.8 s 4.7 s
Spawn worker and import in it (first job) 4.0 s 4.1 s 3.9 s 4.3 s
Task discovery on the worker 3.8 s 3.7 s 3.7 s 3.8 s
Workflow discovery on the worker <0.1 s <0.1 s <0.1 s <0.1 s
Convert external workflows on the worker 180.3 s (242) 33.3 s (242) 0.9 s (8) 0.8 s (8)
Write task and workflow JSON files 4.8 s (~600) 4.8 s (~600) 0.1 s (~366) 0.1 s (~366)
Copy defaults, create app, index ~0.2 s ~0.2 s ~0.2 s ~0.2 s
Total until ready 198.1 s 50.8 s 13.6 s 13.7 s
Shutdown 0.9 s 0.9 s 0.9 s 0.9 s
  • Fresh means it runs for the first time.

  • Cost of requirements: gathering them adds about 0.6 s per workflow (one pip freeze each), which is about 147 s on a fresh start.

  • Why cached is the same either way: on a cached start, the only workflows still converted are the 8 broken bes ones. They fail while loading, before pip freeze would run.

  • 242: workflows found by discovery. bes 149, blissoda 73, ewoksmx 16, ewoksid31 4. On a fresh start every one of them is converted.

  • 8: the broken bes workflows: 5 Massif1*Twitter, ExecuteMXPressOrig, ExecuteMXPressTest and MXPressR_dehydration. They fail to convert, so they're never cached and are tried again on every startup.

  • 366: tasks found by discovery. bes 292, ewoksmx 32, ewoksxrpd 31, ewokscore 8, ewoksid31 3. The server writes every task JSON on every startup, cached or not.

  • 600: JSON files written on a fresh start: the 366 tasks plus 234 cached workflows (242 minus the 8 that fail).

@woutdenolf
woutdenolf merged commit 2e31307 into main Oct 7, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants