ramdb/docs/core/scheduler.md
Jacob Schmidt 5b9f3402b6
All checks were successful
Build / Build (push) Successful in 30s
docs: add comprehensive documentation and usage examples for ramdb
2025-03-22 16:31:59 -05:00

57 lines
1.9 KiB
Markdown

---
title: ArmaRAMDb - Scheduler
icon: mdi:file-text-outline
excerpt: Scheduled Environment for extension.
---
# ramdb_db_fnc_scheduler
## Description
Manages the callback system for the ArmaRAMDb extension. This function receives task IDs from the extension's asynchronous callbacks, parses them, and registers them in a hashmap for later processing. It acts as the bridge between the extension's asynchronous operations and the game's execution environment.
## Syntax
```sqf
[_taskID] call ramdb_db_fnc_scheduler
```
## Parameters
| Parameter | Type | Description | Default |
|-----------|--------|-------------------------------------------------|---------|
| `_taskID` | String | Task identifier returned from extension callback | "" |
## Return Value
None. The function registers the task ID in a hashmap for later processing.
## Examples
### Process a callback from the extension:
```sqf
["1689524160123_get"] call ramdb_db_fnc_scheduler;
```
### Forward a callback to the server:
```sqf
["1689524160123_hgetall"] remoteExecCall ["ramdb_db_fnc_scheduler", 2, false];
```
## Notes
- Parses the task ID to extract the timestamp and operation type
- Registers the task in a type-specific hashmap using the mission namespace
- Each operation type (get, hgetall, etc.) has its own hashmap for tracking
- The format of task IDs is typically: `[timestamp]_[operation]`
- This function is automatically called by the extension callback mechanism
- Creates hashmaps on demand if they don't already exist
- Critical for handling asynchronous database operations
## Related Functions
- `ramdb_db_fnc_fetch`: Assembles data chunks for large datasets
- `ramdb_db_fnc_handler`: Processes the data retrieved from database operations
- `ramdb_db_fnc_processQueue`: Executes queued database operations
## Links
[Add Task](addtask) |
[Handler](handler) |
[Init](init) |
[Process Queue](processqueue) |
[Scheduler](scheduler) |
[Test](test)