Advertisement
Guest User

Untitled

a guest
Jul 13th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. var express = require('express');
  2. var Promise = require("bluebird");
  3. var getSqlConnection = require('../common/database');
  4. var redisModules = require("../common/redismodule");
  5.  
  6. function getSettings(request, response)
  7. {
  8. if (redisModules.IsRedisConnectionOpened() == true)
  9. {
  10. return GetData();
  11. }
  12. else
  13. {
  14. response.status(500).send();
  15. return;
  16. }
  17.  
  18. function GetData()
  19. {
  20. redisModules.GetRedisValue("key")
  21. .then(function (result)
  22. {
  23. if (!result)
  24. return new SetData();
  25. else
  26. return result;
  27. })
  28. .catch(function (e)
  29. {
  30. response.status(500).send();
  31. })
  32. .then(function (result)
  33. {
  34. response.status(200).send({ value : result });
  35. });
  36. }
  37.  
  38. function SetData()
  39. {
  40. return Promise.using(getSqlConnection(), function(connection)
  41. {
  42. return connection.query('select url from blog')
  43. .then(function(results)
  44. {
  45. var data = "";
  46. // some code
  47. return data;
  48. })
  49. .then(function (result)
  50. {
  51. return new redisModules.SetRedisValue("key", result);
  52. });
  53. });
  54. }
  55. }
  56.  
  57. var mysql = require('promise-mysql');
  58.  
  59. pool = mysql.createPool({
  60. host: '',
  61. user: '',
  62. password: '',
  63. database: '',
  64. connectionLimit: 4
  65. });
  66.  
  67. function getSqlConnection() {
  68. return pool.getConnection().disposer(function(connection) {
  69. pool.releaseConnection(connection);
  70. });
  71. }
  72.  
  73. module.exports = getSqlConnection;
  74.  
  75. var Promise = require('bluebird');
  76. var constants = require('../common/contants');
  77.  
  78. var redisClient; // Global (Avoids Duplicate Connections)
  79.  
  80. module.exports =
  81. {
  82. OpenRedisConnection : function()
  83. {
  84. if (redisClient == null)
  85. {
  86. redisClient = require("redis").createClient(6379, 'localhost');
  87. }
  88. },
  89. IsRedisConnectionOpened : function()
  90. {
  91. if (redisClient && redisClient.connected == true)
  92. {
  93. return true;
  94. }
  95. else
  96. {
  97. if(redisClient)
  98. redisClient.end(); // End and open once more
  99.  
  100. module.exports.OpenRedisConnection();
  101. return true;
  102. }
  103. },
  104. GetRedisValue: function (key)
  105. {
  106. return new Promise(function (resolve, reject)
  107. {
  108. redisClient.get(key, function (error, result)
  109. {
  110. if (error)
  111. {
  112. reject(error);
  113. }
  114. else
  115. {
  116. if (result == null)
  117. resolve(); // Key not present so create
  118. else
  119. resolve(result);
  120. }
  121. });
  122. });
  123. },
  124. SetRedisValue: function (key, value)
  125. {
  126. return new Promise(function (resolve, reject)
  127. {
  128. redisClient.set(key, value, 'EX', 1000,
  129. function(err,reply)
  130. {
  131. if (reply == 'OK')
  132. resolve(value); // Send the value
  133. else
  134. reject(err);
  135. });
  136. });
  137. }
  138. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement