sync_test.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package v1
  2. import (
  3. "git.sxidc.com/service-supports/dps-sdk/client"
  4. "sync"
  5. "testing"
  6. "time"
  7. )
  8. var tableModelDescribe1 = map[string]string{
  9. "ID": "gorm:\"primary_key;type:varchar(32);comment:id;\"",
  10. "Name1": "gorm:\"not null;type:varchar(128);comment:数据库名称;\"",
  11. }
  12. var tableModelDescribe2 = map[string]string{
  13. "ID": "gorm:\"primary_key;type:varchar(32);comment:id;\"",
  14. "Name2": "gorm:\"not null;type:varchar(128);comment:数据库名称;\"",
  15. }
  16. func TestSync(t *testing.T) {
  17. initClient(t, "localhost:30170", "ee2d7dabe56646ce835d80873348ee0e")
  18. defer destroyClient(t, "ee2d7dabe56646ce835d80873348ee0e")
  19. tablePrefix1 := "test.test1"
  20. tablePrefix2 := "test.test2"
  21. id1 := simpleUUID()
  22. id2 := simpleUUID()
  23. name1 := "name1"
  24. name2 := "name2"
  25. toolKit := newToolKit(t).
  26. autoMigrate(&client.AutoMigrateRequest{
  27. Items: []client.AutoMigrateItem{
  28. {
  29. TablePrefixWithSchema: tablePrefix1,
  30. Version: "v1",
  31. TableModelDescribe: tableModelDescribe1,
  32. NoEvent: false,
  33. },
  34. {
  35. TablePrefixWithSchema: tablePrefix2,
  36. Version: "v1",
  37. TableModelDescribe: tableModelDescribe2,
  38. NoEvent: false,
  39. },
  40. },
  41. }).
  42. insert(&client.InsertRequest{
  43. TablePrefixWithSchema: tablePrefix1,
  44. Version: "v1",
  45. KeyColumns: []string{"id"},
  46. TableRow: client.NewTableRow().
  47. AddColumnValueString("id", id1).
  48. AddColumnValueString("name1", name1),
  49. UserID: "test",
  50. }).
  51. insert(&client.InsertRequest{
  52. TablePrefixWithSchema: tablePrefix2,
  53. Version: "v1",
  54. KeyColumns: []string{"id"},
  55. TableRow: client.NewTableRow().
  56. AddColumnValueString("id", id2).
  57. AddColumnValueString("name2", name2),
  58. UserID: "test",
  59. })
  60. wg := sync.WaitGroup{}
  61. wg.Add(2)
  62. go func() {
  63. for i := 0; i < 100; i++ {
  64. toolKit.queryOnlyByWhereAndOrderBy(&client.QueryByWhereAndOrderByRequest{
  65. TablePrefixWithSchema: tablePrefix1,
  66. Version: "v1",
  67. Where: client.NewClause().Equal("id", id1).
  68. Equal("name1", name1),
  69. PageNo: 0,
  70. PageSize: 0,
  71. }, nil)
  72. time.Sleep(100 * time.Millisecond)
  73. }
  74. wg.Done()
  75. }()
  76. go func() {
  77. for i := 0; i < 100; i++ {
  78. toolKit.queryOnlyByWhereAndOrderBy(&client.QueryByWhereAndOrderByRequest{
  79. TablePrefixWithSchema: tablePrefix2,
  80. Version: "v1",
  81. Where: client.NewClause().Equal("id", id2).
  82. Equal("name2", name2),
  83. PageNo: 0,
  84. PageSize: 0,
  85. }, nil)
  86. time.Sleep(100 * time.Millisecond)
  87. }
  88. wg.Done()
  89. }()
  90. wg.Wait()
  91. }