Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 0 additions & 116 deletions docs/content/docs/java/api-reference/queue.mdx

This file was deleted.

16 changes: 16 additions & 0 deletions docs/content/docs/java/api-reference/queue/events.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: Events & Logs
description: "Structured task logs, webhooks, and the autoscaler."
---

## Logs

| Method | Description |
|---|---|
| `writeTaskLog(...)` / `getTaskLogs(id)` | Structured task-log lines for a job. |

## Webhooks & autoscaler

`WebhookManager.attach(taskito)` registers outcome webhooks, and
`Scaler.start(taskito, ScalerOptions.onPort(9090))` serves a queue-depth
endpoint for external autoscalers — both build on this client.
54 changes: 54 additions & 0 deletions docs/content/docs/java/api-reference/queue/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: Taskito
description: "Construct the client and the full producer/admin API."
---

import { Callout } from "fumadocs-ui/components/callout";

```java
import org.byteveda.taskito.Taskito;

try (Taskito taskito = Taskito.builder().sqlite("taskito.db").open()) {
// ...
}
```

`Taskito` is `AutoCloseable`; `close()` releases the native storage handle.

<Callout type="info" title="Sub-pages">
The `Taskito` API is split across several pages for readability:

- **[Job Management](/java/api-reference/queue/jobs)** — results, cancellation, listing, error history
- **[Queue & Stats](/java/api-reference/queue/queues)** — statistics, dead letters, queue control, settings
- **[Workers & Hooks](/java/api-reference/queue/workers)** — worker builder, middleware, workflow control
- **[Resources & Locking](/java/api-reference/queue/resources)** — resources, enqueue gates, distributed locks, periodic tasks
- **[Events & Logs](/java/api-reference/queue/events)** — structured task logs, webhooks, autoscaler
- **[Pub/Sub](/java/api-reference/queue/pubsub)** — topic subscriptions, fan-out publish
</Callout>

## Builder

| Method | Description |
|---|---|
| `backend(String)` | `"sqlite"` (default) \| `"postgres"` \| `"redis"`. |
| `url(String)` | Connection string: a file path for SQLite, a URL for Postgres/Redis. |
| `sqlite()` / `sqlite(path)` / `postgres(url)` / `redis(url)` | Backend shortcuts. SQLite defaults to `.taskito/taskito.db`. |
| `poolSize(int)` | Connection pool size (SQLite/Postgres). |
| `schema(String)` | Postgres schema (default `taskito`). |
| `prefix(String)` | Redis key prefix. |
| `namespace(String)` | Namespace applied to enqueued jobs + the worker scheduler. |
| `serializer(Serializer)` | Payload/result serializer (default `JsonSerializer`). |
| `codec(PayloadCodec...)` | Global [codec chain](/java/api-reference/serializers) around the serializer. |
| `codec(String, PayloadCodec)` | Register a named codec for per-task selection (`Task.codecs`). |
| `open()` | Open the native backend → `Taskito`. |
| `open(QueueBackend)` | Open over an explicit backend (e.g. a test fake). |

## Producer

| Method | Description |
|---|---|
| `enqueue(Task<T>, T)` / `enqueue(Task<T>, T, EnqueueOptions)` | Enqueue a typed payload → job id. |
| `enqueue(String taskName, Object payload)` | Enqueue by task name. |
| `tryEnqueue(...)` | Gate-aware `enqueue`: `Optional.empty()` when a gate skips; a `Reject` still throws. |
| `enqueueMany(Task<T>, List<T>)` / `(..., EnqueueOptions)` | Batch-enqueue in one storage call → ids in input order (no dedup). |
| `enqueueAll(Task<T>, List<T>)` | Alias of `enqueueMany`. |
22 changes: 22 additions & 0 deletions docs/content/docs/java/api-reference/queue/jobs.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
title: Job Management
description: "Job results, cancellation, listing, and error history."
---

## Results & cancellation

| Method | Description |
|---|---|
| `getJob(id)` → `Optional<Job>` | A job snapshot (status, progress, timestamps). |
| `awaitJob(id, Duration)` → `Optional<Job>` | Block until terminal; throws on timeout. |
| `getResult(id)` → `Optional<byte[]>` / `getResult(id, Class<R>)` → `Optional<R>` | The job's result, raw or [deserialized](/java/api-reference/result). |
| `cancel(id)` | Cancel a pending job. |
| `requestCancel(id)` / `isCancelRequested(id)` | Cooperative cancellation of a running job. |
| `setProgress(id, int)` | Record 0–100 progress for inspection / the dashboard. |

## Listing & errors

| Method | Description |
|---|---|
| `listJobs(JobFilter)` | List jobs — filter by status/queue/task with limit/offset. |
| `jobErrors(id)` → `List<JobError>` | Per-attempt error history. |
4 changes: 4 additions & 0 deletions docs/content/docs/java/api-reference/queue/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"title": "Taskito",
"pages": ["jobs", "queues", "workers", "resources", "events", "pubsub"]
}
16 changes: 16 additions & 0 deletions docs/content/docs/java/api-reference/queue/pubsub.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: Pub/Sub
description: "Topic subscriptions and fan-out publish. See the Pub/Sub guide for delivery semantics and lifecycle."
---

See [Pub/Sub](/java/guides/core/pubsub) for the full guide (delivery
semantics, lifecycle, cross-SDK topics).

| Method | Description |
|---|---|
| `subscribe(topic, Task<T>)` / `subscribe(topic, Task<T>, SubscriptionOptions)` | Wire `Task` into `topic`'s routing (durable by default). Register the handler on the worker separately, as for any task. |
| `publish(topic, payload)` / `publish(topic, payload, PublishOptions)` → `List<Job>` | Fan a message out to every active subscription — one job each. Empty list when nothing is subscribed. |
| `unsubscribe(topic, name)` | Remove a subscription; `false` if none matched. |
| `pauseSubscription(topic, name)` / `resumeSubscription(topic, name)` | Stop/resume deliveries without unregistering; `false` if none matched. |
| `listSubscriptions()` / `listSubscriptions(topic)` | Every subscription, or one topic's active ones. |
| `listTopics()` | Distinct topics with at least one subscription. |
38 changes: 38 additions & 0 deletions docs/content/docs/java/api-reference/queue/queues.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
title: Queue & Stats
description: "Statistics, dead letters, queue control, and settings."
---

## Statistics

| Method | Description |
|---|---|
| `stats()` / `statsByQueue(q)` / `statsAllQueues()` | `QueueStats` counts by status. |
| `metrics(taskName, sinceMs)` → `List<TaskMetric>` | Per-execution metrics (null task = all). |

## Dead letter

| Method | Description |
|---|---|
| `listDead(limit, offset)` / `listDeadByTask(task, limit, offset)` | Dead-letter entries. |
| `retryDead(deadId)` (alias `retry`) / `deleteDead(deadId)` | Re-enqueue / drop an entry. |
| `purgeDead(olderThanMs)` / `purgeDeadByTask(task)` | Bulk DLQ cleanup → count removed. |

## Queue control

| Method | Description |
|---|---|
| `queue(name)` → `Queue` | A named-queue handle: `name()`, `pause()`, `resume()`, `isPaused()`. |
| `listPausedQueues()` | Names of every paused queue. |

## Settings

| Method | Description |
|---|---|
| `getSetting` / `setSetting` / `deleteSetting` / `listSettings` | Shared key–value settings in the store. |

## Cleanup

| Method | Description |
|---|---|
| `purgeCompleted(olderThanMs)` | Drop old completed jobs. |
33 changes: 33 additions & 0 deletions docs/content/docs/java/api-reference/queue/resources.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
title: Resources & Locking
description: "Resources, enqueue gates, and distributed locks."
---

## Resources

| Method | Description |
|---|---|
| `resource(...)` | Register an injectable [resource](/java/api-reference/resources). |
| `resourceMetrics()` | Per-resource created/disposed/active counters. |

## Enqueue gates

| Method | Description |
|---|---|
| `predicate(taskName, Predicate)` / `gate(taskName, EnqueueGate)` | Enqueue-time gates: reject, skip, or defer submissions. |
| `intercept(Interceptor)` | Pass / convert / redirect / reject each enqueue before serialization. |

## Distributed locks

| Method | Description |
|---|---|
| `lock(name, ttlMs)` / `lock(name)` | A distributed `Lock` (default 30s TTL): `acquire()`, `tryAcquire(timeout)`, `extend(ttlMs)`, `close()`. |
| `withLock(name, ttlMs, Runnable)` | Acquire → run → release; returns whether it ran. |
| `lockInfo(name)` (alias `getLockInfo`) | Current holder metadata, if held. |

## Periodic

| Method | Description |
|---|---|
| `registerPeriodic(PeriodicTask)` | Register (or replace) a cron task → next fire time (Unix ms). |
| `listPeriodic()` / `deletePeriodic(name)` / `pausePeriodic(name)` / `resumePeriodic(name)` | Periodic task management. |
24 changes: 24 additions & 0 deletions docs/content/docs/java/api-reference/queue/workers.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
title: Workers & Hooks
description: "Worker builder, middleware, and workflow control."
---

## Workers

| Method | Description |
|---|---|
| `worker()` → `Worker.Builder` | Begin building a [worker](/java/api-reference/worker). |
| `listWorkers()` → `List<WorkerInfo>` | Registered workers (heartbeat + identity). |

## Middleware

| Method | Description |
|---|---|
| `use(Middleware)` | Cross-cutting hooks — `onEnqueue`, `before`/`after`/`onError`, and the outcome hooks. |

## Workflows

| Method | Description |
|---|---|
| `submitWorkflow(Workflow)` / `submitWorkflow(Workflow, Map)` | Submit a [workflow](/java/api-reference/workflows) → `WorkflowRun`. |
| `workflowStatus(runId)` / `cancelWorkflow(runId)` | Run queries and cancellation. |
Loading