Node-redis: рд╣рд░ 3 рдорд┐рдирдЯ рдореЗрдВ ECONNRESET рдкрдврд╝реЗрдВ - рдЗрд╕рдХреЗ рдХрд╛рд░рдг NodeJS рд╕рд░реНрд╡рд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП newrelic рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдлрд╝рд░ре░ 2015  ┬╖  26рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: NodeRedis/node-redis

рддреНрд░реБрдЯрд┐: рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди redis1.tfs рд╕реЗред tfs: 6379 рд╡рд┐рдлрд▓ - рд╕реЙрдХреЗрдЯ рдореЗрдВ рд░реЗрдбрд┐рд╕рдХреНрд▓рд╛рдЗрдВрдЯ.рдСрди_рд░реЛрд░ (/var/www/a/b/c/node_modules/redis/index.js:196/24) рдкрд░ ECONNRESET рдкрдврд╝реЗрдВред(/var/www/a/b/c/node_modules/redis/index.js:106:14)
рд╕реЙрдХреЗрдЯ.рдорд┐рдЯ рдкрд░ (рдИрд╡реЗрдВрдЯ .js: 95: 17)
at net.js: 441: 14
/var/www/a/b/c/node_modules/newrelic/node_modules/continuation-local-storage/node_modules/async-listener/glue.js:188:31
/var/www/a/b/c/node_modules/newrelic/node_modules/continuation-local-storage/node_modules/async-listener/glue.js:188:31
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ ред_tickDomainCallback (рдиреЛрдб .js: 486: 13)
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ред(/var/www/a/b/c/node_modules/newrelic/node_modules/continuation-local-storage/node_modules/async-listener/index.js:18:15)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@ ayazpasha2434 рдЗрд╕ рд▓рд╛рдЗрди рдиреЗ рдореЗрд░реА рддреНрд░реБрдЯрд┐ рд╣рд▓ рдХрд░ рджреА

client.on ('рдПрд░рд░', рдлрдВрдХреНрд╢рди (рдЗрд░реЗрдЯ) {рдХрдВрд╕реЛрд▓.рд░реЛрд░ (рдЗрд░реЗрдЯ)})

рд╕рднреА 26 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ Node.js рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рддреНрд░реБрдЯрд┐ "ECONNRESET" рд╣реИ, рдЬрдм Node.js рдХрд╛ рджреВрд░рд╕реНрде рдХрдиреЗрдХреНрд╢рди рд╕реЙрдХреЗрдЯ рдХреЛ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдиреЛрдб рдФрд░ рд░реЗрдбрд┐рд╕ рдХреЗ рдмреАрдЪ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдиреЛрдб / рдиреЛрдб_реНрд░реЗрдбрд┐рд╕ / рд░реЗрдбрд┐рд╕ рд╕рд░реНрд╡рд░ рдХрд╛ рдХреНрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ?

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ NewRelic рдПрдЬреЗрдВрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╣рдореЗрд╢рд╛ рдПрдЬреЗрдВрдЯ рдХреЗ рдмрд┐рдирд╛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред cc / @wraithan

рдЙрди рд▓рд╛рдЗрдиреЛрдВ рд╕рд┐рд░реНрдл рд╕реАрдПрд▓рдПрд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╣ рдмрд╛рдд рд╣реИред рдПрдХ рд░реЗрдкреНрд░реЛ рдХреЗ рдЕрдзрд┐рдХ рдХреЗ рд╕рд╛рде рдореИрдВ рдиреНрдпреВ рдЕрд╡рд╢реЗрд╖ рдПрдЬреЗрдВрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╢реНрд╡рд╕реНрдд рд╣реВрдВ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдореИрдВрдиреЗ NewRelic рдПрдЬреЗрдВрдЯ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╣реЛрддреА рд╣реИред рд▓рдЧрднрдЧред рд╣рд░ 3 рдорд┐рдирдЯ рдореИрдВ рдпрд╣ рджреБрд░реНрдШрдЯрдирд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдиреАрдЪреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рд╣реИрдВред

рдШрдЯрдирд╛рдУрдВред js: 72
рдПрд░ рдлреЗрдВрдХ; // рдЕрдирд╣реЗрд▓реНрджреА 'рддреНрд░реБрдЯрд┐' рдШрдЯрдирд╛
^
рддреНрд░реБрдЯрд┐: рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди redis1.tfs рд╕реЗред tfs: 6379 рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
RedisClient.on_error (/var/www/a/b/c/node_modules/redis/index.js:196:24) рдкрд░
рд╕реЙрдХреЗрдЯ рдкрд░ред(/var/www/a/b/c/node_modules/redis/index.js:106:14)
рд╕реЙрдХреЗрдЯ.рдорд┐рдЯ рдкрд░ (рдИрд╡реЗрдВрдЯ .js: 95: 17)
at net.js: 441: 14
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ ред_tickDomainCallback (рдиреЛрдб .js: 486: 13)
рддреНрд░реБрдЯрд┐: рд╣рдореЗрд╢рд╛ рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рдирд┐рдХрд▓реА: 8
рддреНрд░реБрдЯрд┐: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрдирд░рд╛рд░рдВрдн рдкреНрд░рдпрд╛рд╕ # 50

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ Node.JS - v0.10.35, node_redis - 0.12.1 рдФрд░ рд░реЗрдбрд┐рд╕ - 2.8.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рдиреЛрдб рдореЗрдВ рд╕реАрдзреЗ рдЖрдИрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЗрдбрд┐рд╕ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореБрдЭреЗ рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╕ рдХреБрдЫ рд╣реА рд╕рдордп рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЕрдкрдиреЗ /etc/hosts рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмрд╕ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдЧрд╛рдпрдм рдерд╛:

127.0.0.1 localhost

@ ayazpasha2434 рд╕рдорд╛рдзрд╛рди рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЛрдВ рдХреА рддрд░рд╣ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рдиреЛрдб рдХреЗ рдмрд╛рд╣рд░ рдФрд░ env / shell / OS / VM рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдереЛрдбрд╝рд╛ рдкреАрдЫреЗ рд╣рдЯреЗрдВ рдФрд░ рдШреВрд░реЗрдВред

@sarathms рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ рд╣реЛрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдпрд╣ рдореИрдкрд┐рдВрдЧ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд░реЗрдбрд┐рд╕ рдорд╢реАрди рдПрдХ рд░рд┐рдореЛрдЯ рд╣реИред рдмрд╕ рдХреНрд░реЙрд╕-рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рд░реЗрдбрд┐рд╕ рдорд╢реАрди рдореЗрдВ рднреА рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдореИрдкрд┐рдВрдЧ рд╣реИред рдлрд┐рд░ рднреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ ред рдпрд╣рд╛рдБ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ

рдШрдЯрдирд╛рдУрдВред js: 72
рдПрд░ рдлреЗрдВрдХ; // рдЕрдирд╣реЗрд▓реНрджреА 'рддреНрд░реБрдЯрд┐' рдШрдЯрдирд╛
^
рддреНрд░реБрдЯрд┐: рдкрдм-рд░реЗрдбрд┐рд╕ -10606.us-рдкреВрд░реНрд╡-1-1.1.ec2.garantiadata рд╕реЗ рд▓рд╛рд▓ рдХрдиреЗрдХреНрд╢рдиред com: 10606 рд╡рд┐рдлрд▓ - RedisClient.on_error (C: UsersGigiDesktopeduknow_api_ver_1authnode_m рдкрд░ ECONNRESET рдкрдврд╝реЗрдВ
odulesredisindex.js: 196: 24)
рд╕реЙрдХреЗрдЯ рдкрд░ред(C: UsersGigiDesktopeduknow_api_ver_1authnode_modulesredisindex.js: 106: 14)
рд╕реЙрдХреЗрдЯ.рдорд┐рдЯ рдкрд░ (рдИрд╡реЗрдВрдЯ .js: 95: 17)
at net.js: 441: 14
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ред tickCallback (рдиреЛрдбред js: 442: 13)

@ ayazpasha2434 рдЗрд╕ рд▓рд╛рдЗрди рдиреЗ рдореЗрд░реА рддреНрд░реБрдЯрд┐ рд╣рд▓ рдХрд░ рджреА

client.on ('рдПрд░рд░', рдлрдВрдХреНрд╢рди (рдЗрд░реЗрдЯ) {рдХрдВрд╕реЛрд▓.рд░реЛрд░ (рдЗрд░реЗрдЯ)})

@ ayazpasha2434 рдХреНрдпрд╛ @Waterloo рдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЙрддреНрддрд░ рджрд┐рдпрд╛ рд╣реИ?

рдЖрдкрдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣ рдиреЛрдб рд░реЗрдбрд┐рд╕ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИред рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдРрдк рдЕрдм рдХреНрд░реИрд╢ рди рд╣реЛ (рдФрд░ рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рд╕рдВрд▓рдЧреНрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред

JAVA рд╕рд░реНрд╡рд░ рдкрд░ http (рдЙрдкрдпреЛрдЧ рдкреЛрд╕реНрдЯ) рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдкрд░ рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реБрдИред {[рддреНрд░реБрдЯрд┐: ECONNRESET рдкрдврд╝реЗрдВ]
рдХреЛрдб: 'ECONNRESET',
рдЧрд╝рд▓рддреА: 'ECONNRESET',
syscall: 'рдкрдврд╝рд╛',
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд}
рддреНрд░реБрдЯрд┐: ECONNRESET рдкрдврд╝реЗрдВ
Export._errnoException (use.js: 856: 11) рдкрд░
TCP.onread (net.js: 546: 26) рдкрд░
рдбрдмрд▓ рдХреЙрд▓рдмреИрдХ!
POST / user_archives / create / save 500 45.306 ms - 386
рддреНрд░реБрдЯрд┐: ECONNRESET рдкрдврд╝реЗрдВ
Export._errnoException (use.js: 856: 11) рдкрд░
TCP.onread (net.js: 546: 26) рдкрд░

@ biggu0 рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╕реЗ \ n рд╣реИред рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ ECONNRESET рдЖрдк рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рддреЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ stackoverflow ред

рдирдорд╕реНрддреЗ ,
рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднреА рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд░реЗрдбрд┐рд╕ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рднреА рд░реЗрдбрд┐рд╕ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЗ рд░рд╣рд╛ рд╣реИ рдФрд░ рдбрд┐рд╕реНрдХ рдХрдиреЗрдХреНрд╢рди рдкрд░ рд╕реНрдЯреЛрд░реЗрдЬ рд░реАрд╕реЗрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рд░реЗрдбрд┐рд╕ рдбреАрдмрдЧ рд▓реЙрдЧ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЧ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╕рдордп рдмрд┐рд▓реНрдХреБрд▓ рдореЗрд▓ рдЦрд╛ рд░рд╣рд╛ рд╣реИред

рдиреАрдЪреЗ redis.conf рдореЗрдВ рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ
рдмрдЪрд╛рдУ 900 1
300 10 рдмрдЪрд╛рдПрдВ
60 10000 рдмрдЪрд╛рдПрдВ

рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рднреА рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред

RedisClient.emit рдкрд░ рдИрдЖрд░рдЖрд░ (рдИрд╡реЗрдВрдЯреНрд╕.js: 188: 7)
RedisClient.on_error (/home/vcap/app/node_modules/redis/index.js:394:14) рдкрд░ ERR
RedisClient рдореЗрдВ рдИрдЖрд░рдЖрд░ред(/рд╣реЛрдо / рдХрд╛рдЧрдЬрд╝ /app/server.js:28:13)
рдИрдПрдордЖрд░рдИрдЖрд░рдПрдирдЖрд░рдПрдирдЖрд░рдЯреА рдкрд░ рдИрдЖрд░рдЖрд░ (net.js: 1281: 8)
рд╕реЙрдХреЗрдЯ рдореЗрдВ рдИрдЖрд░рдЖрд░ред(/ рд╣реЙрдо / рдХрд╛рдкреНрд╕ /app/node_modules/redis/index.js:272:14)
ERR рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ ред_tickCallback (рдЖрдВрддрд░рд┐рдХ / рдкреНрд░рдХреНрд░рд┐рдпрд╛ / next_tick.js: 98: 9)
рдИрдЖрд░рдЖрд░ рддреНрд░реБрдЯрд┐: XXXXXXXXX рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди
TCP.onread рдкрд░ ERR (net.js: 572: 26)
ERR рдкрд░ _combinedTickCallback (рдЖрдВрддрд░рд┐рдХ / рдкреНрд░рдХреНрд░рд┐рдпрд╛ / next_tick.js: 74: 11)
EmitOne рдкрд░ рдИрдЖрд░рдЖрд░ (рдИрд╡реЗрдВрдЯреНрд╕.js: 96: 13)
рдирд┐рд░реНрдпрд╛рдд рдкрд░ ERR._errnoException (use.js: 1022: 11)
рд╕реЙрдХреЗрдЯ.рдИрдорд┐рдЯ рдкрд░ рдИрдЖрд░рдЖрд░ (рдИрд╡реЗрдВрдЯреНрд╕.рдЬреЗрдПрд╕: 188: 7)

рддреНрд░реБрдЯрд┐ рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрди: рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдХрдиреЗрдХреНрд╢рди рдЦреЛрдиреЗ рдХрд╛ рдХреНрдпрд╛ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рдп рд╡рд╛рдЯрд░рд▓реВ,
рдЬрд╣рд╛рдБ рдЖрдк рдЗрд╕ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдХреНрд▓рд╛рдЗрдВрдЯ ('рдПрд░рд░', рдлрдВрдХреНрд╢рди (рдЗрд░реЗрдЯ) {рдХрдВрд╕реЛрд▓.рд░реЛрд░ (рдЗрд░реЗрдЯ)})
рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрдерди рдХреЗрд╡рд▓ рдЖрдкрдХреА рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рд╛рдВрддреНрд╡рдирд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдФрд░ рдХреБрдЫ рдирд╣реАрдВред
рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ?
рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рджреЗрдВред

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж!!!

рдирдорд╕реНрддреЗ

рдореИрдВ рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдШрдЯрдирд╛рдУрдВред js: 160
рдПрд░ рдлреЗрдВрдХ; // рдЕрдирд╣реЗрд▓реНрджреА 'рддреНрд░реБрдЯрд┐' рдШрдЯрдирд╛
^

рддреНрд░реБрдЯрд┐: ECONNRESET рдкрдврд╝реЗрдВ

рдЗрд╕рд╕реЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ:

  1. рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА (рдирдП рдЕрд╡рд╢реЗрд╖, рд▓реЛрдЪрджрд╛рд░ рдПрдкрдо ...) рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджрд┐рдпрд╛ред
  2. рдореИрдВрдиреЗ рдЗрд╕ рдХреЛрдб рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛
    `` `рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ
    process.on ('uncaughtException', function (рдЗрд░реЗрдЯ) {
    рдХрдВрд╕реЛрд▓ред рдлреЗрд░ (рдЗрд░реЗрдЯрд╛рд╕реНрдЯреИрдХ);
    рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ("рдиреЛрдб рдиреЙрдЯ рдПрдЧреНрдЬрд╛рдЗрдЯрд┐рдВрдЧ ...");
    };

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВ рдПрдХ рд╣реБрдХ рдХреЗ рд╕рд╛рде sails.js рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдиреЛрдб рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рд╕рд░реНрд╡рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдХрдиреЗрдХреНрд╢рди рд╣реИ, рд╣рдо рд░реЗрдбрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рдкрд╛рд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ

redisClient = redis.createClient({
    host: redisConfig.host,
    port: redisConfig.port,
    db: redisConfig.db,
    retry_strategy: (retryOptions) => {
        if (retryOptions.error && retryOptions.error.code === 'ECONNREFUSED') {
            // End reconnecting on a specific error and flush all commands with
            // a individual error
            return new Error('The server refused the connection');
        }

        if (retryOptions.total_retry_time > 1000 * 60 * 60) {
            // End reconnecting after a specific timeout and flush all commands
            // with a individual error
            return new Error('Retry time exhausted');
        }

        if (retryOptions.attempt > 3) {
            // End reconnecting with built in error
            return undefined;
        }

        sails.log.debug('Handling redis retry strategy', {
            error: retryOptions.error,
            totalRetryTime: retryOptions.total_retry_time,
            attempt: retryOptions.attempt
        });

        // Reconnect after
        return Math.min(retryOptions.attempt * 100, 3000);
    }
});

рдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд╣реИ
рдЧрд░реНрднрдкрд╛рдд: рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЧрдпрд╛ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдпрд╣ RedisClient.flush_and_error (/var/sample-app/node_modules/redis/index.js:362:23 рдкрд░ RedisClient .connection_gone (/ var / рдирдореВрдирд╛-рдРрдк / node_modules / redis / index) рдкрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред js: 664: 14) n рдкрд░ RedisClient.on_error (/var/sample-app/node_modules/redis/index.js:410:10) рд╕реЙрдХреЗрдЯ рдкрд░ред(/var/sample-app/node_modules/redis/index.js:279:14 рдкрд░ emitOne (event.js: 116: 13) n рд╕реЙрдХреЗрдЯ.рдорд┐рдЯ (рдЗрд╡реЗрдВрдЯ .js: 211: 7) n рдкрд░ emitErrorNT () рдЖрдВрддрд░рд┐рдХ / рдзрд╛рд░рд╛рдПрдБ / рд╡рд┐рдзреНрд╡рдВрд╕ .js: 66: 8) n рдкрд░ /var/sample-app/node_modules/async-listener/glue.js:188:31 args рдкрд░ред (рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди) / (usr / lib / node_modules / pm2 /node_modules/event-loop-inspector/index.js:138:29)n at _combinedTickCallback (рдЖрдВрддрд░рд┐рдХ / рдкреНрд░рдХреНрд░рд┐рдпрд╛ / next_tick.js: 139: 11 n n рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ ред_tickDomainCallback (рдЖрдВрддрд░рд┐рдХ / рдкреНрд░рдХреНрд░рд┐рдпрд╛ / next_tick.js): 21 9 ) n at process.fallback (/var/sample-app/node_modules/async-listener/index.js/63:15)ред

рд╣рдорд╛рд░рд╛ рдиреЛрдб рдРрдк рдПрдХ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ EC2 рд▓рд╛рдЗрдирдХреНрд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд░реЗрдбрд┐рд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧрд╛ред

рд╣рдо рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдордиреЗ рд╕реНрдЯрдирд▓рд╛рдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреЛ рд░реЗрдбрд┐рд╕ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрдирд▓рд╛рдЗрди рд░рдЦрд╛ рд╣реИред

fips = рдирд╣реАрдВ

setuid = рдЬрдбрд╝

рд╕реЗрдЯрдЧрд┐рдб = рдЬрдбрд╝

pid = /var/run/stunnel.pid
debug = 7

рд╡рд┐рдХрд▓реНрдк = NO_SSLv2

рд╡рд┐рдХрд▓реНрдк = NO_SSLv3
рдЖрдЙрдЯрдкреБрдЯ = /var/log/stunnel.log

рдЧреНрд░рд╛рд╣рдХ = рдирд╣реАрдВ

рдЕрдЧреНрд░рднреВрдорд┐ = рд╣рд╛рдБ

[redis-cli]
рдЧреНрд░рд╛рд╣рдХ = рд╣рд╛рдБ
рд╕реНрд╡реАрдХрд╛рд░ = 127.0.0.1:6379
connect = redi sendpoint: 6379

рдкреНрд░рддреНрдпреЗрдХ рджреЛ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдЗрди рдиреАрдЪреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдо рдЗрдиреНрд╣реЗрдВ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред

127.0.0.1:6379 рдкрд░ рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
TCP.onStreamRead (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 111: 27)
рддреНрд░реБрдЯрд┐: 127.0.0.1:6379 рдкрд░ рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
TCP.onStreamRead (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 111: 27)
рддреНрд░реБрдЯрд┐: 127.0.0.1:6379 рдкрд░ рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
TCP.onStreamRead (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 111: 27)
рдЧрд░реНрднрдкрд╛рдд: рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЧрдпрд╛ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреЛрдИ рд╕рдВрдХрд▓реНрдк?

рд╣рдо рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдордиреЗ рд╕реНрдЯрдирд▓рд╛рдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреЛ рд░реЗрдбрд┐рд╕ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрдирд▓рд╛рдЗрди рд░рдЦрд╛ рд╣реИред

fips = рдирд╣реАрдВ

setuid = рдЬрдбрд╝

рд╕реЗрдЯрдЧрд┐рдб = рдЬрдбрд╝

pid = /var/run/stunnel.pid
debug = 7

рд╡рд┐рдХрд▓реНрдк = NO_SSLv2

рд╡рд┐рдХрд▓реНрдк = NO_SSLv3
рдЖрдЙрдЯрдкреБрдЯ = /var/log/stunnel.log

рдЧреНрд░рд╛рд╣рдХ = рдирд╣реАрдВ

рдЕрдЧреНрд░рднреВрдорд┐ = рд╣рд╛рдБ

[redis-cli]
рдЧреНрд░рд╛рд╣рдХ = рд╣рд╛рдБ
рд╕реНрд╡реАрдХрд╛рд░ = 127.0.0.1:6379
connect = redi sendpoint: 6379

рдкреНрд░рддреНрдпреЗрдХ рджреЛ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдЗрди рдиреАрдЪреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдо рдЗрдиреНрд╣реЗрдВ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред

127.0.0.1:6379 рдкрд░ рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
TCP.onStreamRead (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 111: 27)
рддреНрд░реБрдЯрд┐: 127.0.0.1:6379 рдкрд░ рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
TCP.onStreamRead (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 111: 27)
рддреНрд░реБрдЯрд┐: 127.0.0.1:6379 рдкрд░ рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
TCP.onStreamRead (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 111: 27)
рдЧрд░реНрднрдкрд╛рдд: рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЧрдпрд╛ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреЛрдИ рд╕рдВрдХрд▓реНрдк?

рдореЗрд░реЗ рд▓рд┐рдП рднреА рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдореБрджреНрджрд╛ рд╣реИ

рдореИрдВ рднреА рдЙрд╕реА рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

{ Error: Redis connection to xx.xx.x.x:6379 failed - read ECONNRESET" 

at TCP.onStreamRead (internal/stream_base_commons.js:111:27) errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' 

рдореИрдВ рдПрд░рд░ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдореЗрд░реА рдХреНрд╡реЗрд░реА рдХреЙрд▓ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рджреЗрд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@ рдЕрдпрд╛рдЬ рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рд▓реЛрдЧреЛрдВ рдиреЗ рдХреЗрд╡рд▓ рддреНрд░реБрдЯрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдЕрдирд╕реБрд▓рдЭреА рд╣реИред

рдмрдореНрдкрд┐рдВрдЧ: рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛:

error: Error: Redis connection to xx.yy.zz.aa:6379 failed - read ECONNRESET at TCP.onStreamRead (internal/stream_base_commons.js:205:27) { errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' },

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рд╣реА рджреЗрдЦрддрд╛ рд╣реВрдВ:

  • рдиреЛрдбрдЬрд╕ v12.16.3
  • NestJS рд░реВрдкрд░реЗрдЦрд╛
  • IOredis: 4.2
  • рдиреЗрд╕реНрдЯрдЬ-рд░реЗрдбрд┐рд╕: 1.2.8

Redis рдХреЛ Google Cloud MemoryStore рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд▓реЙрдЧ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

[Ioredis] рдЕрдирд╣реЗрд▓реНрджреА рдПрд░рд░ рдЗрд╡реЗрдВрдЯ: рдПрд░рд░: рдЗрдХреЛрдиреЙрдиреЗрдЯ рдкрдврд╝реЗрдВ

рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░рдг рдпрд╛ рд╕рдорд╛рди рдЪрд░рдгреЛрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ 24 рдШрдВрдЯреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдмрд╕ рд╣реЛрддрд╛ рд╣реИ

@ robertop87
рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рджреЗрдЦрддрд╛ рд╣реВрдВред Redis рдХреЛ Google Cloud MemoryStore рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛?

рдХреНрд▓рд╛рдЙрдб рдореЗрдореЛрд░реА рд╕реНрдЯреЛрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдХреНрд▓рд╛рдЙрдб рд░рди / рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦрдирд╛ред рдпрд╣ рд╕рдВрднрд╡рддрдГ рддрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрд╣реБрдд рдЬрд▓реНрдж рд╣реА Google рджреНрд╡рд╛рд░рд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдореБрджреНрджрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдкрд╣рд▓реЗ рд╢реБрд░реВ рд╣реБрдЖ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдерд╛ рдХрд┐ рд╣рдо рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдФрд░ рдиреЛрдб 12 рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдУрд░реНрдбрд┐рд╕ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

IORedis рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рдгрдиреАрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рддреНрд░реБрдЯрд┐ рдкрд░ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдХрд╛рд░рдг рдпрд╣ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдореИрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╡рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЕрдЧрд▓рд╛ рд╣реИ:

reconnectOnError: (error): boolean => {
  console.log('Always reconnect on error', error)
  return true
}

ECONNRESET рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдореЗрд░рд╛ рдХрдиреЗрдХреНрд╢рди рд╡рд╛рдкрд╕ рд▓реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореЗрд░рд╛ Google рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЕрдм рдЕрдЯрдХ рдирд╣реАрдВ рд░рд╣рд╛ рд╣реИред

CC: @ hkd987

reconnectOnError рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рдкрдврд╝реЗрдВ: https://github.com/luin/ioredis

@ robertop87 рдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП reconnectOnError рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ред рдпрд╣ рдПрдХ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдпрд╛ рдирдП рдЯрд┐рдХрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ рдкрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

yuany picture yuany  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

abhaygarg picture abhaygarg  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Mickael-van-der-Beek picture Mickael-van-der-Beek  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

juriansluiman picture juriansluiman  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Atala picture Atala  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ