Reliable scheduling with trigger.dev¶
trigger.dev is an open source background job platform. With trigger.dev you can easily create, schedule, and manage background jobs using code.
Read on to learn how to create complex, reliable scheduling with trigger.dev.
Before you start¶
Before you start, ensure:
- You have a trigger.dev account.
- You have a Tinybird Workspace.
Create your first trigger task¶
The tinybird-trigger repo contains some examples for trigger.dev that show you how to execute Tinybird Copy Pipes and use the Query API to get data from tasks.
Create a working directory, and run
npx trigger.dev@latest init
to connect the project to trigger.dev.Inside the
trigger
directory, add thecopy.ts
file from the tinybird-trigger repo.Create a new file called
myTask.ts
and add the following code:
import { task } from "@trigger.dev/sdk/v3"; import { tinybirdCopyTask } from "./copy"; export const exampleExecutor = task({ id: "example-executor", run: async (payload, { ctx }) => { console.log("Example executor task is running"); // Run a copy job const copyResult = await tinybirdCopyTask.triggerAndWait({ pipeId: <COPY_PIPE_ID> }); console.log(copyResult); }, });
- Go to your Tinybird Workspace, and create a new Pipe. Use the following SQL:
SELECT number + 1 AS value FROM numbers(100)
Name the Pipe
my_copy
, then selectCreate Copy
from the actions menu. Follow the prompts to create the Copy Pipe.Update
myTask.ts
, replacing<COPY_PIPE_ID>
with the name of your Pipe,my_copy
in this case.Create a
.env
file in your directory root.Go to your Tinybird Workspace and copy the Admin Token, then add it to the
.env
file as follows:
TINYBIRD_TOKEN=p.eyJ...
Run
npx trigger.dev@latest dev
to push the task to trigger.dev.Go to your trigger.dev dashboard, and perform a test run to trigger the task and the Copy Pipe.
Go to your Tinybird Workspace and check the Copy Pipe results.