cachedTable
Syntax
cachedTable(updateFunc, retentionSeconds)
Arguments
updateFunc is a function without parameters. It must return a table.
retentionSeconds is a positive integer indicating the frequency (in seconds) to update the cached table.
Details
Create a special type of in-memory table: cached table. When querying the cached table, if the time elapsed since the last update exceeds a specified value, updateFunc is executed automatically to update the cached table.
To access a cached table with multiple threads, the table must be shared.
Examples
This example defines a unary function, f1, and fixes its argument to
produce a partial application with no arguments, f1{t}.
f1{t} is passed as the updateFunc to
cachedTable.
def f1(mutable t){
update t set id=id+1
return t
}
t=table(1..5 as id, 15 25 35 45 55 as val)
ct=cachedTable(f1{t}, 2);
select * from ct;
| id | val |
|---|---|
| 2 | 15 |
| 3 | 25 |
| 4 | 35 |
| 5 | 45 |
| 6 | 55 |
sleep(2100)
select * from ct
| id | val |
|---|---|
| 3 | 15 |
| 4 | 25 |
| 5 | 35 |
| 6 | 45 |
| 7 | 55 |
ct=NULL;
