diff --git a/test-huey/main.py b/test-huey/main.py new file mode 100644 index 0000000..60674a4 --- /dev/null +++ b/test-huey/main.py @@ -0,0 +1,8 @@ +from tasks import add_numbers, divide + +if __name__ == "__main__": + print("Enqueuing tasks...") + add_numbers(3, 7) + divide(10, 2) + divide(1, 0) + print("Tasks enqueued. Run the consumer to process them.") diff --git a/test-huey/pyproject.toml b/test-huey/pyproject.toml new file mode 100644 index 0000000..74f365c --- /dev/null +++ b/test-huey/pyproject.toml @@ -0,0 +1,14 @@ +[project] +name = "test-huey" +version = "0" +requires-python = ">=3.12" + +dependencies = [ + "huey>=2.0", + "ipdb>=0.13.13", + "redis>=5.2.1", + "sentry-sdk", +] + +[tool.uv.sources] +sentry-sdk = { path = "../../sentry-python", editable = true } diff --git a/test-huey/run-consumer.sh b/test-huey/run-consumer.sh new file mode 100755 index 0000000..c70671f --- /dev/null +++ b/test-huey/run-consumer.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +set -euo pipefail +reset + +if ! command -v uv &> /dev/null; then + curl -LsSf https://astral.sh/uv/install.sh | sh +fi + +pkill redis-server || true +sleep 1 +rm -rf dump.rdb +redis-server --daemonize yes + +uv run huey_consumer tasks.huey --workers 1 diff --git a/test-huey/run.sh b/test-huey/run.sh new file mode 100755 index 0000000..a08057d --- /dev/null +++ b/test-huey/run.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -euo pipefail +reset + +if ! command -v uv &> /dev/null; then + curl -LsSf https://astral.sh/uv/install.sh | sh +fi + +uv run python main.py diff --git a/test-huey/tasks.py b/test-huey/tasks.py new file mode 100644 index 0000000..8598a6f --- /dev/null +++ b/test-huey/tasks.py @@ -0,0 +1,28 @@ +import os + +from huey import RedisHuey + +import sentry_sdk +from sentry_sdk.integrations.huey import HueyIntegration + +sentry_sdk.init( + dsn=os.environ.get("SENTRY_DSN"), + environment=os.environ.get("ENV", "test"), + traces_sample_rate=1.0, + debug=True, + integrations=[ + HueyIntegration(), + ], +) + +huey = RedisHuey("test-huey", host="localhost", port=6379) + + +@huey.task() +def add_numbers(a, b): + return a + b + + +@huey.task(retries=1) +def divide(a, b): + return a / b