@eggjs/tegg-background-task 3.4.1 → 3.6.0

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.
@@ -1,8 +1,9 @@
1
- import type { EggLogger } from 'egg';
1
+ import type { EggLogger, EggAppConfig } from 'egg';
2
2
  import { EggObjectLifecycle } from '@eggjs/tegg-lifecycle';
3
3
  export declare class BackgroundTaskHelper implements EggObjectLifecycle {
4
4
  logger: EggLogger;
5
5
  timeout: number;
6
+ config: EggAppConfig;
6
7
  private backgroundTasks;
7
8
  init(): Promise<void>;
8
9
  run(fn: () => Promise<void>): void;
@@ -23,6 +23,7 @@ let BackgroundTaskHelper = class BackgroundTaskHelper {
23
23
  this.backgroundTasks = [];
24
24
  }
25
25
  async init() {
26
+ var _a;
26
27
  const ctx = tegg_runtime_1.ContextHandler.getContext();
27
28
  (0, assert_1.default)(ctx, 'background task helper must be init in context');
28
29
  tegg_runtime_1.EggContextLifecycleUtil.registerObjectLifecycle(ctx, {
@@ -30,6 +31,9 @@ let BackgroundTaskHelper = class BackgroundTaskHelper {
30
31
  await this.doPreDestroy();
31
32
  },
32
33
  });
34
+ if ((_a = this.config.backgroundTask) === null || _a === void 0 ? void 0 : _a.timeout) {
35
+ this.timeout = this.config.backgroundTask.timeout;
36
+ }
33
37
  }
34
38
  run(fn) {
35
39
  const backgroundTask = new Promise(resolve => {
@@ -57,16 +61,21 @@ let BackgroundTaskHelper = class BackgroundTaskHelper {
57
61
  // quick quit
58
62
  if (!this.backgroundTasks.length)
59
63
  return;
60
- const { promise: timeout, resolve } = this.sleep();
61
64
  const backgroundTasks = this.backgroundTasks.slice();
62
- await Promise.race([
63
- // not block the pre destroy process too long
64
- timeout,
65
- // ensure all background task are done before destroy the context
66
- Promise.all(backgroundTasks),
67
- ]);
68
- // always resolve the sleep promise
69
- resolve();
65
+ if (this.timeout <= 0 || this.timeout === Infinity) {
66
+ await Promise.all(backgroundTasks);
67
+ }
68
+ else {
69
+ const { promise: timeout, resolve } = this.sleep();
70
+ await Promise.race([
71
+ // not block the pre destroy process too long
72
+ timeout,
73
+ // ensure all background task are done before destroy the context
74
+ Promise.all(backgroundTasks),
75
+ ]);
76
+ // always resolve the sleep promise
77
+ resolve();
78
+ }
70
79
  if (this.backgroundTasks.length !== backgroundTasks.length) {
71
80
  this.backgroundTasks = this.backgroundTasks.slice(backgroundTasks.length);
72
81
  return this.doPreDestroy();
@@ -98,10 +107,14 @@ __decorate([
98
107
  (0, core_decorator_1.Inject)(),
99
108
  __metadata("design:type", Object)
100
109
  ], BackgroundTaskHelper.prototype, "logger", void 0);
110
+ __decorate([
111
+ (0, core_decorator_1.Inject)(),
112
+ __metadata("design:type", Object)
113
+ ], BackgroundTaskHelper.prototype, "config", void 0);
101
114
  BackgroundTaskHelper = __decorate([
102
115
  (0, core_decorator_1.ContextProto)({
103
116
  accessLevel: core_decorator_1.AccessLevel.PUBLIC,
104
117
  })
105
118
  ], BackgroundTaskHelper);
106
119
  exports.BackgroundTaskHelper = BackgroundTaskHelper;
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFja2dyb3VuZFRhc2tIZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQmFja2dyb3VuZFRhc2tIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLDBEQUEwRTtBQUcxRSxzREFBOEU7QUFLdkUsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFBMUI7UUFJTCxpQ0FBaUM7UUFDakMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVQLG9CQUFlLEdBQXlCLEVBQUUsQ0FBQztJQWdGckQsQ0FBQztJQTlFQyxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sR0FBRyxHQUFHLDZCQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEMsSUFBQSxnQkFBTSxFQUFDLEdBQUcsRUFBRSxnREFBZ0QsQ0FBQyxDQUFDO1FBQzlELHNDQUF1QixDQUFDLHVCQUF1QixDQUFDLEdBQUcsRUFBRTtZQUNuRCxVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3JCLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzVCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsR0FBRyxDQUFDLEVBQXVCO1FBQ3pCLE1BQU0sY0FBYyxHQUFHLElBQUksT0FBTyxDQUFPLE9BQU8sQ0FBQyxFQUFFO1lBQ2pELElBQUk7Z0JBQ0YsRUFBRSxFQUFFO29CQUNGLGtDQUFrQztxQkFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQztxQkFDYixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ1QsQ0FBQyxDQUFDLE9BQU8sR0FBRyxnREFBZ0QsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO29CQUN6RSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckIsbUNBQW1DO29CQUNuQyxPQUFPLEVBQUUsQ0FBQztnQkFDWixDQUFDLENBQUMsQ0FB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
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFja2dyb3VuZFRhc2tIZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQmFja2dyb3VuZFRhc2tIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLDBEQUEwRTtBQUcxRSxzREFBOEU7QUFLdkUsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFBMUI7UUFJTCxpQ0FBaUM7UUFDakMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUtQLG9CQUFlLEdBQXlCLEVBQUUsQ0FBQztJQXNGckQsQ0FBQztJQXBGQyxLQUFLLENBQUMsSUFBSTs7UUFDUixNQUFNLEdBQUcsR0FBRyw2QkFBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hDLElBQUEsZ0JBQU0sRUFBQyxHQUFHLEVBQUUsZ0RBQWdELENBQUMsQ0FBQztRQUM5RCxzQ0FBdUIsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUU7WUFDbkQsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNyQixNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxNQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYywwQ0FBRSxPQUFPLEVBQUU7WUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFDLEVBQXVCO1FBQ3pCLE1BQU0sY0FBYyxHQUFHLElBQUksT0FBTyxDQUFPLE9BQU8sQ0FBQyxFQUFFO1lBQ2pELElBQUk7Z0JBQ0YsRUFBRSxFQUFFO29CQUNGLGtDQUFrQztxQkFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQztxQkFDYixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ1QsQ0FBQyxDQUFDLE9BQU8sR0FBRyxnREFBZ0QsR0FB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@eggjs/tegg-background-task",
3
3
  "description": "background util for tegg",
4
- "version": "3.4.1",
4
+ "version": "3.6.0",
5
5
  "keywords": [
6
6
  "egg",
7
7
  "typescript",
@@ -37,9 +37,9 @@
37
37
  "author": "killagu <killa123@126.com>",
38
38
  "license": "MIT",
39
39
  "dependencies": {
40
- "@eggjs/core-decorator": "^3.2.3",
40
+ "@eggjs/core-decorator": "^3.5.0",
41
41
  "@eggjs/tegg-lifecycle": "^3.2.4",
42
- "@eggjs/tegg-runtime": "^3.3.1"
42
+ "@eggjs/tegg-runtime": "^3.5.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/mocha": "^10.0.1",
@@ -54,5 +54,5 @@
54
54
  "publishConfig": {
55
55
  "access": "public"
56
56
  },
57
- "gitHead": "53c6f0685df3c7fefbbc2f3af1a83f8b56bb0a9d"
57
+ "gitHead": "580106114be88a976ebac7d7964545f006742a2c"
58
58
  }