> ## Documentation Index
> Fetch the complete documentation index at: https://docs-old.tilebox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Client.NewPollingTaskRunner

```go theme={"system"}
func (*Client) NewPollingTaskRunner(
    ctx context.Context,
    executor workflows.TaskExecutor,
    options ...runner.Option,
) (*workflows.PollingTaskRunner, error)
```

Create a polling runner for a custom task executor.

Use this lower-level runner when you need a custom execution backend, such as a dynamic runtime, but still want the Tilebox polling protocol to request, lease, and report tasks.

## Parameters

**executor** `workflows.TaskExecutor` *required*

The executor that reports task capabilities and executes leased tasks.

**options** `[]runner.Option`

Options for initializing the polling runner.

## Options

**runner.WithClusterSlug(clusterSlug string)**

The cluster to poll for tasks. If not provided, the default cluster is used.

\**runner.WithRunnerLogger(logger *slog.Logger)** (default: slog.Default())

Set the logger to use for the polling runner.

## Returns

The created polling runner.

```go Go theme={"system"}
runner, err := client.NewPollingTaskRunner(ctx, executor)
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.