@x-9lab/xlab 1.5.3 → 1.5.4

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,3 +1,24 @@
1
+ declare global {
2
+ namespace XLab {
3
+ /**定时任务配置对象 */
4
+ interface IConfigCronItem {
5
+ /**定时任务执行间隔 */
6
+ delay?: number;
7
+ /**是否启用 */
8
+ enable?: boolean;
9
+ }
10
+ interface IConfig {
11
+ /**
12
+ * 定时任务配置
13
+ * @see `@components/cron`
14
+ */
15
+ crons?: {
16
+ /**定时任务配置 */
17
+ [name: string]: IConfigCronItem;
18
+ };
19
+ }
20
+ }
21
+ }
1
22
  /**定时任务模块 */
2
23
  interface ICronJob {
3
24
  /**定时任务 */
@@ -118,6 +118,8 @@ declare global {
118
118
  enableComboCache?: boolean;
119
119
  /**是否开启定时任务 */
120
120
  enableCron?: boolean;
121
+ /**是否允许 worker 上也执行定时任务 */
122
+ enableWorkerCron?: boolean;
121
123
  /**
122
124
  * 开启的中间件列表
123
125
  * @deprecated since version 1.1.0, 已弃用, 请使用改用 `middlewares` 配置项
@@ -17,6 +17,7 @@ const CONFIG = {
17
17
  "staticHtmlFileMaxage": 0,
18
18
  "enableComboCache": true,
19
19
  "enableCron": false,
20
+ "enableWorkerCron": false,
20
21
  "strictSSL": false,
21
22
  "root": "public",
22
23
  "timezone": "Asia/Shanghai"
@@ -42,12 +42,12 @@ const config = getSysConfig("cron") || {
42
42
  if (JOB_STATUS[name] === true) {
43
43
  return;
44
44
  }
45
- var time = (0, _utils.isFunction)(mod.getDelay) ? mod.getDelay() : DEF_TIME;
45
+ var time = (0, _utils.isExecutable)(mod.getDelay) ? mod.getDelay() : DEF_TIME;
46
46
  if (isNaN(time)) {
47
47
  logger.warn("[ %s ] Time Invalid.", name);
48
48
  time = DEF_TIME;
49
49
  }
50
- var enable = (0, _utils.isFunction)(mod.enable) ? mod.enable() === true : true;
50
+ const enable = (0, _utils.isExecutable)(mod.enable) ? mod.enable() === true : true;
51
51
  if (!enable) {
52
52
  return null;
53
53
  }
package/dist/dot-file.js CHANGED
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "processDotFile", {
7
7
  get: ()=>processDotFile
8
8
  });
9
9
  const _utils = require("@x-drive/utils");
10
+ const _nodeUtil = require("node:util");
10
11
  const _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
11
12
  const _fs = /*#__PURE__*/ _interopRequireDefault(require("fs"));
12
13
  function _interopRequireDefault(obj) {
@@ -35,7 +36,7 @@ function _interopRequireDefault(obj) {
35
36
  }
36
37
  } catch (e) {
37
38
  if (e.code !== "ENOENT") {
38
- logger.error(e);
39
+ logger.error((0, _nodeUtil.inspect)(e));
39
40
  }
40
41
  }
41
42
  }
package/dist/server.js CHANGED
@@ -121,15 +121,17 @@ app.use((0, _koaStatic.default)(_path.default.resolve(process.cwd(), _config.def
121
121
  // 异常状态处理中间件
122
122
  app.use(_badRequest.default);
123
123
  if (_config.default.enableCron) {
124
- // 定时任务
125
- (0, _cron.on)(_path.default.resolve(process.cwd(), _defaultXConfig.default.businessDir, "cron"));
124
+ if (_config.default.isMaster || _config.default.enableWorkerCron) {
125
+ // 定时任务
126
+ (0, _cron.on)(_path.default.resolve(process.cwd(), _defaultXConfig.default.businessDir, "cron"));
127
+ }
126
128
  }
127
129
  /**启动服务 */ function boot() {
128
130
  (0, _cluster.default)();
129
131
  process.on("uncaughtException", (err)=>{
130
- logger.error("uncaughtException:\n", err.stack);
132
+ logger.error(`uncaughtException:${err.message}\n`, err.stack);
131
133
  }).on("unhandledRejection", (err)=>{
132
- logger.error("unhandledRejection:\n", err.stack);
134
+ logger.error(`unhandledRejection:${err.message}\n`, err.stack);
133
135
  });
134
136
  }
135
137
  /**退出服务 */ function exit() {
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@x-9lab/xlab",
3
- "version": "1.5.3",
3
+ "version": "1.5.4",
4
4
  "description": "9lab 服务端模块",
5
- "versionDesc": "静态文件服务支持跨域",
5
+ "versionDesc": "日志信息输出优化",
6
6
  "scripts": {
7
7
  "dev": "swc src -D ./src/bin --config-file .swcrc -d dist -w",
8
8
  "compile": "swc src -D ./src/bin --config-file .swcrc -d dist",