IndexController.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package com.uas.search.console.controller;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.util.StringUtils;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RequestParam;
  9. import org.springframework.web.bind.annotation.ResponseBody;
  10. import com.uas.search.console.jms.AQListener;
  11. import com.uas.search.console.model.LuceneQueueMessage;
  12. import com.uas.search.console.service.IndexService;
  13. import com.uas.search.model.SPage;
  14. /**
  15. * 索引创建相关请求
  16. *
  17. * @author sunyj
  18. * @since 2016年8月5日 上午11:42:54
  19. */
  20. @Controller
  21. @RequestMapping("/index")
  22. public class IndexController {
  23. @Autowired
  24. private IndexService indexService;
  25. @Autowired
  26. private AQListener aqListener;
  27. @RequestMapping("/create")
  28. @ResponseBody
  29. public String initIndexes(String tableNames) {
  30. List<String> tableNameList = new ArrayList<>();
  31. if (!StringUtils.isEmpty(tableNames)) {
  32. String[] strs = tableNames.split(",");
  33. for (String str : strs) {
  34. tableNameList.add(str.toLowerCase());
  35. }
  36. }
  37. return String.format("Indexes created success in %.2fs",
  38. indexService.createIndexes(tableNameList, true) / 1000.0);
  39. }
  40. @RequestMapping("/downloadComponentData")
  41. @ResponseBody
  42. public String downloadComponentDataFromDatabase(Integer startFileIndex) {
  43. return "Data downloaded success in " + indexService.downloadComponentDataFromDatabase(startFileIndex) + " ms.";
  44. }
  45. @RequestMapping("/listen/start")
  46. @ResponseBody
  47. public String startListen(Long waitInterval) {
  48. return aqListener.start(waitInterval);
  49. }
  50. @RequestMapping("/listen/stop")
  51. @ResponseBody
  52. public String stopListen() {
  53. return aqListener.stop();
  54. }
  55. @RequestMapping("/listen/restart")
  56. @ResponseBody
  57. public String restartListen(Long waitInterval) {
  58. if (aqListener.isRunning()) {
  59. aqListener.stop();
  60. }
  61. return aqListener.start(waitInterval);
  62. }
  63. @RequestMapping("/listen/details")
  64. @ResponseBody
  65. public SPage<LuceneQueueMessage> listenDetails(Integer page, Integer size, String searchContent) {
  66. return indexService.getListenDetails(page, size, searchContent);
  67. }
  68. @RequestMapping("/maintain")
  69. @ResponseBody
  70. public String maintainIndexes(@RequestParam(required = true) String tableName,
  71. @RequestParam(required = true) String ids, @RequestParam(required = true) String method) {
  72. return "已维护:" + indexService.maintainIndexes(tableName, ids, method);
  73. }
  74. @RequestMapping("/dequeue")
  75. @ResponseBody
  76. public boolean dequeueLuceneQueueMessage(String messageId) {
  77. return indexService.dequeueLuceneQueueMessage(messageId);
  78. }
  79. }