zfin/docs/reference/cli/server.md

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_SERVER must be set, and ZFIN_SERVER_API_KEY when 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


CLI command reference