これは愚かな質問かもしれないが、私はいくつかの友人に尋ねてしばらくの間googledした後、まだ良い説明を見つけることができません。データの整合性とエラー処理方法
- MySQL.insert(ユーザー、postTitle、postBody、時間)
- Redis.incr user.totalPostCount
- Redis.set:たとえば、私は時に1件のユーザー投稿の操作に従ってください
を行いますだから私の質問は、例えば、
1
成功しかし2
が失敗した場合、私は何をlast10Posts
を行う必要がありますか?
redisエラーを無視して続行しますか? user.totalPostCount
が間違っています。
リトライredis.incr
?再試行が失敗した場合の対処方法
エンドユーザへの返信エラーはpost fail
と表示され、再度ユーザに投稿されますか?
以前に挿入した投稿を削除し、エラーをユーザーに返しますか?
mysql.insert({user: user, postTitle: postTitle, postBody: postBody}, function(err, mysqlId) {
if(err) { return Error(500); }
redis.incr({user: user, totalPostCount}, function(err, result) {
if(err) { mysql.delete(mysqlId)}
setLast10Post({newPost: {postTitle...}}, function(err, result) {
if(err) {mysql.delete(mysqlId); redis.decr({user.totalPostcount})}
})
})
})
なぜ閉じるの?私はそれがかなり共通だと思う。 – Sato