2.3 KiB
2.3 KiB
zfin server
Ask the shared server (ZFIN_SERVER) to refresh its own cache.
Usage: zfin server refresh SYMBOL [SYMBOL...]
Force-refreshes candle data in the server's cache, bypassing its TTL. Nothing local changes -- your next normal run picks up the server's new copy through the usual sync.
Which side are you refreshing?
Two commands look similar and do opposite things:
| Command | Refreshes | Goes through the server? |
|---|---|---|
zfin cache refresh SYMBOL |
your local cache | No, deliberately |
zfin server refresh SYMBOL |
the server's cache | That is the point |
Run zfin diagnose SYMBOL first -- its local and
server lines say which side is actually behind, so you do not refresh
the wrong one.
moved vs unchanged
The per-symbol result reports whether the newest bar actually moved, not merely whether the fetch succeeded. A successful refresh that changes nothing is the signature of a provider with no newer data -- which is usually the finding you came for, so it is not reported as success.
zfin server refresh SPY AGG
Asking https://zfin.example.org to refresh 2 symbol(s)...
SPY moved 2026-08-19
AGG unchanged 2026-08-18
1 moved, 1 unchanged, 0 failed
Your local cache is untouched - a normal run will sync the new copy.
Requirements and limits
ZFIN_SERVERmust be set, andZFIN_SERVER_API_KEYwhen the server enforces one. Without a server configured there is nothing to ask, and the command says so rather than falling back to a local fetch.- The server caps a single request at 25 symbols.
- It refuses a second concurrent refresh rather than queueing it, so a refresh already in flight (a cron run, say) returns a conflict rather than doubling the provider load.
See also
diagnose-- which tier is behind, before you pick a side.cache--refreshfor the local cache instead.- Caching and data freshness -- the server as an optional second tier.
- Environment variables --
ZFIN_SERVER,ZFIN_SERVER_API_KEY.