3.1 KiB
3.1 KiB
Actor Standby Mode Reference
JavaScript and TypeScript
- NEVER disable standby mode (
usesStandbyMode: false) in.actor/actor.jsonwithout explicit permission - Actor Standby mode solves this problem by letting you have the Actor ready in the background, waiting for the incoming HTTP requests. In a sense, the Actor behaves like a real-time web server or standard API server instead of running the logic once to process everything in batch. Always keepusesStandbyMode: trueunless there is a specific documented reason to disable it - ALWAYS implement readiness probe handler for standby Actors - Handle the
x-apify-container-server-readiness-probeheader at GET / endpoint to ensure proper Actor lifecycle management
You can recognize a standby Actor by checking the usesStandbyMode property in .actor/actor.json. Only implement the readiness probe if this property is set to true.
Readiness Probe Implementation Example
// Apify standby readiness probe at root path
app.get('/', (req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
if (req.headers['x-apify-container-server-readiness-probe']) {
res.end('Readiness probe OK\n');
} else {
res.end('Actor is ready\n');
}
});
Key points:
- Detect the
x-apify-container-server-readiness-probeheader in incoming requests - Respond with HTTP 200 status code for both readiness probe and normal requests
- This enables proper Actor lifecycle management in standby mode
Python
- NEVER disable standby mode (
usesStandbyMode: false) in.actor/actor.jsonwithout explicit permission - Actor Standby mode solves this problem by letting you have the Actor ready in the background, waiting for the incoming HTTP requests. In a sense, the Actor behaves like a real-time web server or standard API server instead of running the logic once to process everything in batch. Always keepusesStandbyMode: trueunless there is a specific documented reason to disable it - ALWAYS implement readiness probe handler for standby Actors - Handle the
x-apify-container-server-readiness-probeheader at GET / endpoint to ensure proper Actor lifecycle management
You can recognize a standby Actor by checking the usesStandbyMode property in .actor/actor.json. Only implement the readiness probe if this property is set to true.
Readiness Probe Implementation Example
# Apify standby readiness probe
from http.server import SimpleHTTPRequestHandler
class GetHandler(SimpleHTTPRequestHandler):
def do_GET(self):
# Handle Apify standby readiness probe
if 'x-apify-container-server-readiness-probe' in self.headers:
self.send_response(200)
self.end_headers()
self.wfile.write(b'Readiness probe OK')
return
self.send_response(200)
self.end_headers()
self.wfile.write(b'Actor is ready')
Key points:
- Detect the
x-apify-container-server-readiness-probeheader in incoming requests - Respond with HTTP 200 status code for both readiness probe and normal requests
- This enables proper Actor lifecycle management in standby mode