Skip to content

Executor - #4

Merged
codingjoe merged 27 commits into
mainfrom
executor
May 5, 2026
Merged

Executor#4
codingjoe merged 27 commits into
mainfrom
executor

Conversation

@codingjoe

Copy link
Copy Markdown
Owner

No description provided.

@codingjoe
codingjoe marked this pull request as ready for review May 4, 2026 16:16
CopilotAI review requested due to automatic review settings May 4, 2026 16:16

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces an initial “executor” implementation for Django’s task framework integration, along with a grinder management command to run workers, plus a test backend and benchmarks to exercise compute/IO/memory workloads.

Changes:

  • Added a multiprocessing/threaded TaskExecutor and a new grinder management command with graceful shutdown handling.
  • Introduced a test-only generating task backend and benchmark workloads (compute/IO/memory), wiring them into the test Django settings.
  • Updated project tooling/docs (pytest-benchmark, CI filtering of benchmarks, release build via uv, README notes, contributing guide, logos).

Reviewed changes

Copilot reviewed 17 out of 22 changed files in this pull request and generated 19 comments.

Show a summary per file
FileDescription
tests/testapp/tasks.pyAdds benchmark task workloads (compute/IO/memory).
tests/testapp/settings.pyConfigures a custom TASKS backend and queue list for tests.
tests/testapp/backends.pyAdds a generating backend that yields synthetic TaskResults for benchmarks.
tests/test_grinder_command.pyAdds tests and benchmark invocations for the grinder command.
tests/test_backends.pyAdds basic unit tests for the new backend interface contract.
README.mdDocuments “current worker behavior” (needs alignment with implementation).
pyproject.tomlSwitches Django dependency to a VCS ref and adds pytest-benchmark/asyncio config.
images/logo-light.svgUpdates/rewrites the light logo SVG.
images/logo-dark.svgUpdates/rewrites the dark logo SVG.
grinder/management/commands/grinder.pyNew Django management command that runs the executor and handles signals.
grinder/executor.pyNew multiprocessing/threaded task executor implementation.
grinder/backends.pyNew abstract backend interface (AcknowledgeableTaskBackend).
grinder/__init__.pyExports __all__.
CONTRIBUTING.mdAdds contributing/testing guidance.
.pre-commit-config.yamlExcludes .github/agents/ from mdformat hook.
.gitignoreIgnores pytest-benchmark output directory.
.github/workflows/release.ymlUpdates release build steps to use uv tooling and renames build job.
.github/workflows/ci.ymlRuns pytest with benchmarks excluded in CI matrix.
.github/copilot-instructions.mdAdds pointer to CONTRIBUTING.md.
.github/agents/superjoe.agent.mdMinor formatting cleanup.

Comment threadthreadmill/management/commands/threadmill.py Outdated
Comment threadthreadmill/management/commands/threadmill.py Outdated
Comment threadthreadmill/management/commands/threadmill.py Outdated
Comment threadthreadmill/management/commands/threadmill.py Outdated
Comment threadthreadmill/management/commands/threadmill.py Outdated
Comment threadtests/testapp/tasks.py
Comment threadtests/test_command.py Outdated
Comment threadtests/test_backends.py Outdated
Comment threadREADME.md Outdated
Comment threadpyproject.toml
@codingjoe
codingjoe merged commit d8e2dc1 into mainMay 5, 2026
7 checks passed
@codingjoe
codingjoe deleted the executor branch May 5, 2026 10:06
Sign up for freeto 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

@codingjoe