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-tasks package implements tasks for Tinybird Copy Pipes and the Query API. You can find the source code in the @sdairs/tinybird-trigger repo.
Create a working directory, and run
npx trigger.dev@latest init
to connect the project to Trigger.dev.Inside the
trigger
directory, install the npm package withnpm install @sdairs/tinybird-trigger-tasks
.Create a new file called
myTask.ts
and add the following code:
import { task } from "@trigger.dev/sdk/v3"; import { tinybirdCopyTask } from "@sdairs/tinybird-trigger-tasks"; 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.