@difizen/libro-kernel 0.2.18 → 0.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,6 +15,7 @@ export declare class ServerManager {
15
15
  get ready(): Promise<ISpecModels>;
16
16
  protected kernelSpecRestAPI: KernelSpecRestAPI;
17
17
  constructor(kernelSpecRestAPI: KernelSpecRestAPI);
18
+ loading: boolean;
18
19
  launch(): Promise<ISpecModels>;
19
20
  protected doLaunch(): Promise<ISpecModels>;
20
21
  protected doGetServerStatus(): Promise<ISpecModels | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../../src/server/server-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,qBACa,aAAa;IACxB;;OAEG;IAEH,SAAS,CAAC,EAAE,OAAO,CAAQ;IAE3B;;OAEG;IAEH,MAAM,CAAC,EAAE,OAAO,CAAS;IAGzB,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,CAA+B;IAErE,IAAI,KAAK,yBAER;IAED,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;gBAER,iBAAiB,EAAE,iBAAiB;IAIrE,MAAM;cAaI,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;cAchC,iBAAiB,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAYtE"}
1
+ {"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../../src/server/server-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,qBACa,aAAa;IACxB;;OAEG;IAEH,SAAS,CAAC,EAAE,OAAO,CAAQ;IAE3B;;OAEG;IAEH,MAAM,CAAC,EAAE,OAAO,CAAS;IAGzB,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,CAA+B;IAErE,IAAI,KAAK,yBAER;IAED,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;gBAER,iBAAiB,EAAE,iBAAiB;IAI3E,OAAO,UAAS;IAEV,MAAM;cA2BI,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;cAYhC,iBAAiB,IAAI,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAYtE"}
@@ -28,6 +28,7 @@ export var ServerManager = (_dec = singleton(), _dec2 = prop(), _dec3 = prop(),
28
28
  _initializerDefineProperty(this, "loaded", _descriptor2, this);
29
29
  _initializerDefineProperty(this, "kernelspec", _descriptor3, this);
30
30
  this.defer = new Deferred();
31
+ this.loading = false;
31
32
  this.kernelSpecRestAPI = kernelSpecRestAPI;
32
33
  }
33
34
  ServerManager = inject(KernelSpecRestAPI)(ServerManager, undefined, 0) || ServerManager;
@@ -41,17 +42,33 @@ export var ServerManager = (_dec = singleton(), _dec2 = prop(), _dec3 = prop(),
41
42
  value: function () {
42
43
  var _launch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
43
44
  var _this = this;
45
+ var current;
44
46
  return _regeneratorRuntime().wrap(function _callee$(_context) {
45
47
  while (1) switch (_context.prev = _context.next) {
46
48
  case 0:
49
+ current = this.defer; // 启动中
50
+ if (!this.loading) {
51
+ _context.next = 3;
52
+ break;
53
+ }
54
+ return _context.abrupt("return", current.promise);
55
+ case 3:
56
+ // 启动过
57
+ if (this.loaded) {
58
+ this.loaded = false;
59
+ current = new Deferred();
60
+ this.defer = current;
61
+ }
62
+
63
+ // 首次启动
64
+ this.loading = true;
47
65
  this.doLaunch().then(function (r) {
48
- _this.defer.resolve(r);
49
- return;
50
- }).catch(function () {
51
- //
52
- });
53
- return _context.abrupt("return", this.defer.promise);
54
- case 2:
66
+ _this.loading = false;
67
+ _this.loaded = true;
68
+ return current.resolve(r);
69
+ }).catch(console.error);
70
+ return _context.abrupt("return", current.promise);
71
+ case 7:
55
72
  case "end":
56
73
  return _context.stop();
57
74
  }
@@ -75,24 +92,22 @@ export var ServerManager = (_dec = singleton(), _dec2 = prop(), _dec3 = prop(),
75
92
  case 2:
76
93
  kernelspec = _context2.sent;
77
94
  this.launching = true;
78
- this.loaded = false;
79
95
  if (kernelspec) {
80
- _context2.next = 11;
96
+ _context2.next = 10;
81
97
  break;
82
98
  }
83
- _context2.next = 8;
99
+ _context2.next = 7;
84
100
  return timeout(1000);
85
- case 8:
86
- _context2.next = 10;
101
+ case 7:
102
+ _context2.next = 9;
87
103
  return this.doLaunch();
88
- case 10:
104
+ case 9:
89
105
  return _context2.abrupt("return", _context2.sent);
90
- case 11:
106
+ case 10:
91
107
  this.launching = false;
92
- this.loaded = true;
93
108
  this.kernelspec = kernelspec;
94
109
  return _context2.abrupt("return", kernelspec);
95
- case 15:
110
+ case 13:
96
111
  case "end":
97
112
  return _context2.stop();
98
113
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@difizen/libro-kernel",
3
- "version": "0.2.18",
3
+ "version": "0.2.20",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "ai-infra",
@@ -32,8 +32,8 @@
32
32
  "src"
33
33
  ],
34
34
  "dependencies": {
35
- "@difizen/libro-common": "^0.2.18",
36
- "@difizen/libro-core": "^0.2.18",
35
+ "@difizen/libro-common": "^0.2.20",
36
+ "@difizen/libro-core": "^0.2.20",
37
37
  "@difizen/mana-app": "latest",
38
38
  "minimist": "^1.2.8",
39
39
  "query-string": "^8.1.0",
@@ -34,29 +34,43 @@ export class ServerManager {
34
34
  this.kernelSpecRestAPI = kernelSpecRestAPI;
35
35
  }
36
36
 
37
+ loading = false;
38
+
37
39
  async launch() {
40
+ let current = this.defer;
41
+
42
+ // 启动中
43
+ if (this.loading) {
44
+ return current.promise;
45
+ }
46
+
47
+ // 启动过
48
+ if (this.loaded) {
49
+ this.loaded = false;
50
+ current = new Deferred<ISpecModels>();
51
+ this.defer = current;
52
+ }
53
+
54
+ // 首次启动
55
+ this.loading = true;
38
56
  this.doLaunch()
39
57
  .then((r) => {
40
- this.defer.resolve(r);
41
- return;
58
+ this.loading = false;
59
+ this.loaded = true;
60
+ return current.resolve(r);
42
61
  })
43
- .catch(() => {
44
- //
45
- });
46
-
47
- return this.defer.promise;
62
+ .catch(console.error);
63
+ return current.promise;
48
64
  }
49
65
 
50
66
  protected async doLaunch(): Promise<ISpecModels> {
51
67
  const kernelspec = await this.doGetServerStatus();
52
68
  this.launching = true;
53
- this.loaded = false;
54
69
  if (!kernelspec) {
55
70
  await timeout(1000);
56
71
  return await this.doLaunch();
57
72
  }
58
73
  this.launching = false;
59
- this.loaded = true;
60
74
  this.kernelspec = kernelspec;
61
75
  return kernelspec;
62
76
  }