ClusterNetState.java 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package com.its.common.cluster.vo;
  2. import io.netty.channel.Channel;
  3. import lombok.Data;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Calendar;
  6. import java.util.Date;
  7. @Data
  8. public class ClusterNetState {
  9. private int state;
  10. private Channel channel;
  11. private long connectCount;
  12. private long lastRecvTime;
  13. private long lastSendTime;
  14. private int retryCount;
  15. private Date connectTime;
  16. private Date disconnectTime;
  17. public ClusterNetState() {
  18. init();
  19. }
  20. public void init() {
  21. this.state = ClusterNET.CLOSED;
  22. this.channel = null;
  23. this.connectCount = 0;
  24. this.lastRecvTime = 0;
  25. this.lastSendTime = 0;
  26. this.retryCount = 0;
  27. this.connectTime = null;
  28. this.disconnectTime = null;
  29. }
  30. public void setLastRecvTime() {
  31. this.lastRecvTime = System.currentTimeMillis();
  32. }
  33. public void setLastSendTime() {
  34. this.lastSendTime = System.currentTimeMillis();
  35. }
  36. public void retry() {
  37. this.retryCount++;
  38. }
  39. public void request() {
  40. this.retryCount = 0;
  41. }
  42. public void connect(Channel channel) {
  43. this.state = ClusterNET.LOGIN_WAIT;
  44. this.channel = channel;
  45. this.connectCount++;
  46. this.connectTime = new Date();
  47. this.retryCount = 0;
  48. setLastRecvTime();
  49. }
  50. public void loginOk() {
  51. this.state = ClusterNET.DATA_TRANS;
  52. }
  53. public void disConnect() {
  54. if (this.state != ClusterNET.CLOSED) {
  55. this.disconnectTime = new Date();
  56. }
  57. this.state = ClusterNET.CLOSED;
  58. this.channel = null;
  59. this.retryCount = 0;
  60. }
  61. public void terminate() {
  62. this.state = ClusterNET.TERMINATE;
  63. }
  64. public boolean isActive() {
  65. return this.channel != null && this.channel.isActive();
  66. }
  67. public String getConnectTimeString() {
  68. if (this.connectTime == null) {
  69. return "----/--/-- --:--:--";
  70. }
  71. Calendar cal = Calendar.getInstance();
  72. cal.setTime(this.connectTime);
  73. return (new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")).format(cal.getTime());
  74. }
  75. public String getDisconnectTimeString() {
  76. if (this.disconnectTime == null) {
  77. return "----/--/-- --:--:--";
  78. }
  79. Calendar cal = Calendar.getInstance();
  80. cal.setTime(this.disconnectTime);
  81. return (new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")).format(cal.getTime());
  82. }
  83. }