Eric Allam ab9e4a989c Improves the performance of run resuming (#522)
* Improves the perform of run resuming

When runs resume, we try and make sure that tasks that have already been completed are cached and reused. Worst case scenario the client needs to hit the API server once for a non-cached task that is indeed completed on the server, but this can get pretty expensive when there are a larger number of tasks.

This commit does 2 different things to help:

- noop tasks are no longer “cached” using the cachedTasks strategy, instead their idempotency keys are shoved into a bloom filter and the client tests for their inclusion in the bloom filter before running them (since they don’t have any concept of output, this works)
- Additional cached tasks are lazy loaded when a task is run. This allows us to progressively fetch additional tasks to be cached on the client, which will cut down on cache misses by a decent amount

* Create warm-carrots-float.md

* Make io.yield backwards compat with older platform versions

* Better support old clients connecting to server versions that support lazy loading cached tasks

* Fixed type errors when settings headers with unknown value

* Better yield not support error message

* Rename _version to _serverVersion to be more clear
2023-10-03 16:44:18 +01:00
2023-09-22 08:54:31 -07:00
2023-10-02 14:26:54 +01:00
2023-09-05 16:29:23 +01:00
2023-09-30 22:20:34 +01:00
2023-09-08 17:26:08 +01:00

Trigger.dev logo

The open source background jobs framework

Discord | Website | Issues | Docs

Twitter GitHub Repo stars

About Trigger.dev

Create long-running jobs directly in your codebase with features like API integrations, webhooks, scheduling and delays.

Long running Jobs on serverless

Reliably run jobs and dont worry about function timeouts, we handle those for you.

  • Auto-resume after a function timeout
  • Auto-resume after a server outage
  • Add delays of up to a year

In your codebase

Create Jobs where they belong: in your codebase. Version control, localhost, test, review, and deploy like you're already used to.

Secure by design

We only receive Triggers and the data you choose to send to us. You can even completely self-host the entire platform.

Don't worry about deployment

Just use our SDK to write Jobs in your codebase. There's nothing extra to deploy and no CI to configure, your Jobs just connect to our cloud. Or you can always self-host.

Full visibility of every job run

View every Task in every Run so you can tell exactly what happened.

image

Built-in integrations

Easily integrate with hundreds of third-party APIs including your own. Use API keys (which never leave your server) or let us handle OAuth for you. Install our integration packages and easily subscribe to webhooks and perform common tasks, or you can easily use your existing favorite Node.JS SDKs and get resumability and idempotency through our runTask function.

Our progress

Were building the most comprehensive and easy-to-use background jobs framework for developers.

Click the links to join the discussions about our upcoming features.

Feature What it does Status
Integration kit Official Trigger.dev integrations or build your own
Self-hosting Host the platform yourself
Cloud Just write code, no deployment required
Dashboard View every Task in every Run
Serverless Long-running Jobs on your serverless backend
React hooks Easily update your UI with Job progress
Background tasks Offload long or intense Tasks to our infrastructure 🛠️
React frameworks Support for Remix, Astro, RedwoodJS & more 🛠️
Long-running servers Run Jobs on your long-running backend 🛠️
Polling Triggers Subscribe to changes without webhooks 🕝
Vercel integration Easy deploy and preview environment support 🕝
Streaming Receive data from your Jobs in realtime 🕝
100+ integrations Comprehensive support for popular APIs 🕝
Trigger.dev Connect Use integrations signed in as your users 🕝
File IO Create Tasks that have file outputs 🕝

Getting started

Visit our docs here.

Self-host

We provide an official trigger.dev docker image you can use to easily self-host the platform. We're working on more extensive guides but we currently provide a Fly.io example repository with instructions in the README for deploying and using a self-hosted instance of Trigger.dev on Fly.io.

Development

To setup and develop locally or contribute to the open source project, follow our development guide.

S
Description
Trigger.dev 支持构建和部署完全托管的 AI Agent 与工作流。|GitHub 镜像 16.1k · 🍴 1.4k
https://github.com/triggerdotdev/trigger.dev Readme Apache-2.0 189 MiB
Languages
TypeScript 99%
JavaScript 0.4%
Shell 0.2%
CSS 0.1%