рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ Ubuntu.js рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рдЙрдмрдВрдЯреВ рдХреЗ upstart
рд╕рд╛рде рдмреВрдЯ рдкрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред Redis рдХреЗ рдКрдкрд░ рдФрд░ рдЪрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдиреЛрдб.рдЬреЗрдПрд╕ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, redis.createClient()
рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИ:
node.js:134
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Redis connection to 127.0.0.1:6379 failed - ECONNREFUSED, Connection refused
at Socket.<anonymous> (/var/www/php-jobs/node_modules/redis/index.js:88:28)
at Socket.emit (events.js:64:17)
at Array.<anonymous> (net.js:830:27)
at EventEmitter._tickCallback (node.js:126:26)
рдмреЗрд╢рдХ рдореИрдВ рдЗрд╕реЗ рдПрдХ рдХреЛрд╢рд┐рд╢ / рдкрдХрдбрд╝рдиреЗ рдХреЗ рдмрдпрд╛рди рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдХреА рд╢реБрд░реБрдЖрдд:
var redis = require("redis");
function initializeRedis(callback) {
(function createClient(){
var client;
try {
client = redis.createClient();
} catch (e) {
setTimeout(createClient, 1000);
}
callback(client);
})();
};
initializeRedis(function(client) {
// Do things with client
});
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рдлрд┐рд░ рднреА рдореБрдЭреЗ рдПрдХ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рд╛ред рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдпрд╣ рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░рд╛ рд╕рд░реНрд╡рд░ рд░реЗрдбрд┐рд╕ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ?
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдХ "рддреНрд░реБрдЯрд┐" рдИрд╡реЗрдВрдЯ рдХреЛ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред рдиреЛрдб рдореЗрдВ, "рддреНрд░реБрдЯрд┐" рдирд╛рдо рдХреА рдШрдЯрдирд╛рдПрдВ рд╡рд┐рд╢реЗрд╖ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЙрдирдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╕реБрдирддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рддреЛ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХ рдкрд░ "рддреНрд░реБрдЯрд┐" рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реНрд░реЛрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдФрд░ рдЖрдк рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рдкрд░ рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирддреЗ рд╣реА рдпрд╣ рд╕реНрд╡рдпрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рджреГрд╢реНрдп рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рд╕рдВрднрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ! рдореИрдВ рдПрдХ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдмреНрд▓реЙрдХ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рд▓реЗрдХрд┐рди, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
const рдХреНрд▓рд╛рдЗрдВрдЯ = redis.createClient ({
рд╣реЛрд╕реНрдЯ: process.env.redis_hostname,
рдкреЛрд░реНрдЯ: process.env.redis_port
})
client.on ('рддреНрд░реБрдЯрд┐', (рддреНрд░реБрдЯрд┐) => {
logger.error (error.message);
})
client.on ('рдХрдиреЗрдХреНрдЯ', () => {
logger.info ('рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд░реЗрдбрд┐рд╕ рд╕реЗ рдЬреБрдбрд╝рд╛');
})
рдЗрд╕рд▓рд┐рдП рдпрд╣ рд░реЗрдбрд┐рд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛ рдФрд░ рдЬрдм рдЗрд╕реЗ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдорд┐рд▓реЗрдЧрд╛ рддреЛ рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ред рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП @mranney рдзрдиреНрдпрд╡рд╛рдж
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
const рдХреНрд▓рд╛рдЗрдВрдЯ = redis.createClient ({
рд╣реЛрд╕реНрдЯ: process.env.redis_hostname,
рдкреЛрд░реНрдЯ: process.env.redis_port
})
client.on ('рддреНрд░реБрдЯрд┐', (рддреНрд░реБрдЯрд┐) => {
logger.error (error.message);
})
client.on ('рдХрдиреЗрдХреНрдЯ', () => {
logger.info ('рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд░реЗрдбрд┐рд╕ рд╕реЗ рдЬреБрдбрд╝рд╛');
})
рдЗрд╕рд▓рд┐рдП рдпрд╣ рд░реЗрдбрд┐рд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛ рдФрд░ рдЬрдм рдЗрд╕реЗ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдорд┐рд▓реЗрдЧрд╛ рддреЛ рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ред рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП @mranney рдзрдиреНрдпрд╡рд╛рдж