* feat: add 12 official Apify skills for web scraping and data extraction Add the complete Apify agent-skills collection as official vendor skills, bringing the total skill count from 954 to 966. New skills: - apify-actor-development: Develop, debug, and deploy Apify Actors - apify-actorization: Convert existing projects into Apify Actors - apify-audience-analysis: Audience demographics across social platforms - apify-brand-reputation-monitoring: Track reviews, ratings, and sentiment - apify-competitor-intelligence: Analyze competitor strategies and pricing - apify-content-analytics: Track engagement metrics and campaign ROI - apify-ecommerce: E-commerce data scraping for pricing intelligence - apify-influencer-discovery: Find and evaluate influencers - apify-lead-generation: B2B/B2C lead generation from multiple platforms - apify-market-research: Market conditions and geographic opportunities - apify-trend-analysis: Discover emerging trends across platforms - apify-ultimate-scraper: Universal AI-powered web scraper Existing skill fixes: - design-orchestration: Add missing description, fix markdown list spacing - multi-agent-brainstorming: Add missing description, fix markdown list spacing Registry and documentation updates: - Update skill count to 966+ across README.md, README.vi.md - Add Apify to official sources in SOURCES.md and all README variants - Register new skills in catalog.json, skills_index.json, bundles.json, aliases.json - Update CATALOG.md category counts (data-ai: 152, infrastructure: 95) Validation script improvements: - Raise description length limit from 200 to 1024 characters - Add empty description validation check - Apply PEP 8 formatting (line length, spacing, trailing whitespace) * refactor: truncate skill descriptions in SKILL.md files and revert description length validation to 200 characters. * feat: Add `apify-ultimate-scraper` to data-ai and move `apify-lead-generation` from business to general categories.
62 lines
3.1 KiB
Markdown
62 lines
3.1 KiB
Markdown
# Actor Standby Mode Reference
|
|
|
|
## JavaScript and TypeScript
|
|
|
|
- **NEVER disable standby mode (`usesStandbyMode: false`) in `.actor/actor.json` without 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 keep `usesStandbyMode: true` unless there is a specific documented reason to disable it
|
|
- **ALWAYS implement readiness probe handler for standby Actors** - Handle the `x-apify-container-server-readiness-probe` header 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
|
|
|
|
```javascript
|
|
// 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-probe` header 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.json` without 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 keep `usesStandbyMode: true` unless there is a specific documented reason to disable it
|
|
- **ALWAYS implement readiness probe handler for standby Actors** - Handle the `x-apify-container-server-readiness-probe` header 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
|
|
|
|
```python
|
|
# 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-probe` header 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
|