Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(這是個 PoC 用於表示實現思路)避免在 too many requests 或者 network unreachable 的時候 丟失節點信息:使得 geph4-client 只有在成功從 binder 獲取到登錄信息的時候,才會覆蓋更新本地緩存 ~/.config/geph4-credentials/ #116

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

Yoicode
Copy link

@Yoicode Yoicode commented Apr 9, 2023

現在的 sync --force 的邏輯很不合理,是先刪除了 緩存目錄,然後連接 binder 更新。所以如果連接不上 binder 的時候就會 丟失上一次 sync 的信息

簡單來說,這個例子是先創建一個新的目錄來表示 “最新狀態”,然後只有在 geph4-client sync 命令執行成功時才會把這個 state 更新到 原本的儲存位置。
這樣一旦互聯網斷開、用戶頻繁請求導致 429,或者是因爲 binder 下線 導致無法更新的時候,那麼不會改動上一次保存的 json 文件 ,所以用戶可以嘗試使用最後一次 sync 得到的信息

@Yoicode
Copy link
Author

Yoicode commented Apr 9, 2023

類似於 git add 和 git commit 的區別,也就是先把最新數據放在一個 暫存區 之中,然後確認無誤了 再提交更改。那麼最新數據如果獲取不成功的話,舊數據會保留

@nullchinchilla
Copy link
Member

這個並不會顯著改善問題。force只有用戶手動點擊刷新按鈕時才會set

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants