mirror of
https://github.com/hatchet-dev/hatchet.git
synced 2026-03-20 19:50:47 -05:00
* feat: initial ruby sdk * fix: run listener * fix: scope * feat: rest feature clients * fix: bugs * fix: concurrent register * fix: tests and ergonomics * docs: all of them * chore: lint * feat: add RBS * feat: add GitHub Actions workflow for Ruby SDK with linting, testing, and publishing steps * chore: lint * refactor: simplify load path setup for Hatchet REST client and remove symlink creation * fix: cert path * fix: test * fix: blocking * fix: ensure Hatchet client is only initialized once across examples * fix: tests * remove: unused example * fix: bubble up errors * test: skip flaky for now * remove: lifespans * fix: durable context bugs * fix: bulk replay * fix: tests * cleanup: generate tooling * fix: integration test * chore: lint * release: 0.1.0 * chore: remove python comments * refactor: remove OpenTelemetry configuration and related unused options * fix: default no healthcheck * chore: lockfile * feat: register as ruby * chore: lint * chore: update py/ts apis to include ruby * chore: docs pass * chore: lint * chore: generate * chore: cleanup * chore: generate examples * tests: add e2e tests * tests: cache examples dependencies * fix: namespace * fix: namespace * fix: namespaces * chore:lint * fix: improve cancellation workflow polling logic and add error handling * revert: py/ts versions
111 lines
3.4 KiB
Ruby
111 lines
3.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# Main worker that registers all example workflows.
|
|
|
|
require "hatchet-sdk"
|
|
|
|
# Load all example workflows
|
|
require_relative "simple/worker"
|
|
require_relative "dag/worker"
|
|
require_relative "events/worker"
|
|
require_relative "cancellation/worker"
|
|
require_relative "on_failure/worker"
|
|
require_relative "on_success/worker"
|
|
require_relative "timeout/worker"
|
|
require_relative "retries/worker"
|
|
require_relative "non_retryable/worker"
|
|
require_relative "logger/worker"
|
|
require_relative "delayed/worker"
|
|
require_relative "priority/worker"
|
|
require_relative "run_details/worker"
|
|
require_relative "concurrency_limit/worker"
|
|
require_relative "concurrency_limit_rr/worker"
|
|
require_relative "concurrency_cancel_in_progress/worker"
|
|
require_relative "concurrency_cancel_newest/worker"
|
|
require_relative "concurrency_multiple_keys/worker"
|
|
require_relative "concurrency_workflow_level/worker"
|
|
require_relative "rate_limit/worker"
|
|
require_relative "child/worker"
|
|
require_relative "fanout/worker"
|
|
require_relative "bulk_fanout/worker"
|
|
require_relative "durable/worker"
|
|
require_relative "durable_event/worker"
|
|
require_relative "durable_sleep/worker"
|
|
require_relative "conditions/worker"
|
|
require_relative "dependency_injection/worker"
|
|
require_relative "streaming/worker"
|
|
require_relative "serde/worker"
|
|
require_relative "dataclasses/worker"
|
|
require_relative "dedupe/worker"
|
|
require_relative "cron/worker"
|
|
require_relative "scheduled/worker"
|
|
require_relative "bulk_operations/worker"
|
|
require_relative "return_exceptions/worker"
|
|
require_relative "manual_slot_release/worker"
|
|
require_relative "affinity_workers/worker"
|
|
require_relative "sticky_workers/worker"
|
|
require_relative "webhooks/worker"
|
|
require_relative "webhook_with_scope/worker"
|
|
require_relative "unit_testing/worker"
|
|
|
|
HATCHET = Hatchet::Client.new(debug: true) unless defined?(HATCHET)
|
|
|
|
ALL_WORKFLOWS = [
|
|
# Tier 1
|
|
SIMPLE, SIMPLE_DURABLE,
|
|
DAG_WORKFLOW,
|
|
EVENT_WORKFLOW,
|
|
CANCELLATION_WORKFLOW,
|
|
ON_FAILURE_WF, ON_FAILURE_WF_WITH_DETAILS,
|
|
ON_SUCCESS_WORKFLOW,
|
|
TIMEOUT_WF, REFRESH_TIMEOUT_WF,
|
|
SIMPLE_RETRY_WORKFLOW, BACKOFF_WORKFLOW,
|
|
NON_RETRYABLE_WORKFLOW,
|
|
LOGGING_WORKFLOW,
|
|
PRINT_SCHEDULE_WF, PRINT_PRINTER_WF,
|
|
PRIORITY_WORKFLOW,
|
|
RUN_DETAIL_TEST_WORKFLOW,
|
|
|
|
# Tier 2
|
|
CONCURRENCY_LIMIT_WORKFLOW,
|
|
CONCURRENCY_LIMIT_RR_WORKFLOW,
|
|
CONCURRENCY_CANCEL_IN_PROGRESS_WORKFLOW,
|
|
CONCURRENCY_CANCEL_NEWEST_WORKFLOW,
|
|
CONCURRENCY_MULTIPLE_KEYS_WORKFLOW,
|
|
CONCURRENCY_WORKFLOW_LEVEL_WORKFLOW,
|
|
RATE_LIMIT_WORKFLOW,
|
|
|
|
# Tier 3
|
|
CHILD_TASK_WF,
|
|
FANOUT_PARENT_WF, FANOUT_CHILD_WF,
|
|
BULK_PARENT_WF, BULK_CHILD_WF,
|
|
DURABLE_WORKFLOW, EPHEMERAL_WORKFLOW, WAIT_FOR_SLEEP_TWICE,
|
|
DURABLE_EVENT_TASK, DURABLE_EVENT_TASK_WITH_FILTER,
|
|
DURABLE_SLEEP_TASK,
|
|
TASK_CONDITION_WORKFLOW,
|
|
ASYNC_TASK_WITH_DEPS, SYNC_TASK_WITH_DEPS,
|
|
DURABLE_ASYNC_TASK_WITH_DEPS, DURABLE_SYNC_TASK_WITH_DEPS,
|
|
DI_WORKFLOW,
|
|
|
|
# Tier 4-5
|
|
STREAM_TASK,
|
|
SERDE_WORKFLOW,
|
|
SAY_HELLO,
|
|
DEDUPE_PARENT_WF, DEDUPE_CHILD_WF,
|
|
CRON_WORKFLOW,
|
|
SCHEDULED_WORKFLOW,
|
|
BULK_REPLAY_TEST_1, BULK_REPLAY_TEST_2, BULK_REPLAY_TEST_3,
|
|
RETURN_EXCEPTIONS_TASK,
|
|
SLOT_RELEASE_WORKFLOW,
|
|
AFFINITY_WORKER_WORKFLOW,
|
|
STICKY_WORKFLOW, STICKY_CHILD_WORKFLOW,
|
|
WEBHOOK_TASK,
|
|
WEBHOOK_WITH_SCOPE, WEBHOOK_WITH_STATIC_PAYLOAD,
|
|
SYNC_STANDALONE, ASYNC_STANDALONE,
|
|
DURABLE_SYNC_STANDALONE, DURABLE_ASYNC_STANDALONE,
|
|
SIMPLE_UNIT_TEST_WORKFLOW, COMPLEX_UNIT_TEST_WORKFLOW
|
|
].freeze
|
|
|
|
worker = HATCHET.worker("all-examples-worker", slots: 40, workflows: ALL_WORKFLOWS)
|
|
worker.start
|