// V2 style (deprecated) Fly.task("send_email", function(data, cb) emailService.send(data, cb); ); // V3 style (modern) async function sendEmail(data) return await emailService.send(data);
But what exactly is a "Fly V3 script"? Is it a single file, a framework, or a methodology? This article delves deep into the mechanics, use cases, and optimization strategies for writing high-performance Fly V3 scripts. Before writing a script, one must understand the runtime. "Fly V3" typically refers to the third iteration of a lightweight, high-throughput execution engine designed for asynchronous tasks. Unlike traditional synchronous scripts (e.g., basic Bash or Python loops), Fly V3 utilizes an event-driven, non-blocking I/O model.
flyctl install --version 3.x Create a new script file: monitor.fly.js // monitor.fly.js // Fly V3 Script - Health Monitor version = "3.0" runtime = "async" interval = "30s" // Runs every 30 seconds fly v3 script
async function handle(event) if (event.type === "TRANSACTION") return await processTx(event.data);
Run the script using:
// Example Fly V3 Init const config = endpoint: "https://api.flyv3.example", retries: 3, timeout: 5000 ; let session = null; The heart of the script. Fly V3 is reactive; it waits for triggers (time-based, HTTP, or socket events). The handler processes these triggers.
if (!cache.has("jwt_token") || cache.get("jwt_expires") < Date.now()) const freshToken = await authenticate(); cache.set("jwt_token", freshToken, 3600); // TTL 1 hour // V2 style (deprecated) Fly
// State persistence state consecutive_failures = 0