New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

bc-schedule-server

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bc-schedule-server - npm Package Compare versions

Comparing version 1.1.0 to 1.1.1

6

dist/core.js

@@ -44,3 +44,3 @@ 'use strict';

for (const task of list) {
if (util.isFunction(task) && !this.taskCacheList.has(task.name)) {
if (util.isFunction(task) && task.name && !this.taskCacheList.has(task.name)) {
this.taskCacheList.set(task.name, task);

@@ -62,3 +62,3 @@ this.taskList.push(task.name);

const localIp = util.getLocalIP();
console.log('\x1b[3m\x1b[34m \nccLog ——> \x1b[0m', `Server running on http://127.0.0.1:${port}; http://${localIp}:${port}`);
console.log('\x1b[3m\x1b[34m \nccLog —>\x1b[0m', `Server running on\n http://127.0.0.1:${port}\n http://${localIp}:${port}`);
const { callback } = this.options;

@@ -135,3 +135,3 @@ if (typeof callback === 'function') {

const { jobId, logId, logDateTime, executorHandler } = ctx.request.body;
const logger = this.logInstance.create({ fileName: `${util.formatDate(logDateTime)}-xxl-job-${logId}` });
const logger = this.logInstance.create({ logDateTime, logId });
logger.info(`--- Job Task: ${jobId} is running: ${logId} ---`);

@@ -138,0 +138,0 @@ this.runningTaskList.add(jobId);

@@ -6,3 +6,4 @@ import { ExposeLogger, ILoggerType, IReadLogType, IReadResponse } from './types';

create(params: {
fileName?: string;
logDateTime?: number;
logId?: number;
isOpLog?: boolean;

@@ -9,0 +10,0 @@ }): ExposeLogger;

@@ -30,2 +30,3 @@ 'use strict';

};
const getFullFilename = (prefixPath, timestampe, logId) => path__default["default"].resolve(prefixPath, `./${util.formatDate(timestampe)}-xxl-job/${logId}.log`);
class WLogger {

@@ -37,3 +38,3 @@ constructor(options) {

const { logPath = 'logs' } = this.options;
const { fileName, isOpLog = false } = params;
const { isOpLog = false, logDateTime, logId } = params;
const logger = winston.createLogger({

@@ -51,9 +52,8 @@ format: winston.format.combine(...formatOptions[util.isLocal ? 'local' : 'prod']),

datePattern: `YYYY-MM-DD`,
zippedArchive: true,
}));
}
else if (!util.isLocal) {
const allFilename = path__default["default"].resolve(logPath, `./${fileName}.log`);
else if (!util.isLocal && logDateTime && logId) {
const filename = getFullFilename(logPath, logDateTime, logId);
logger.add(new winston.transports.File({
filename: allFilename,
filename,
handleExceptions: true,

@@ -71,8 +71,8 @@ }));

const { logPath = 'logs' } = loggerInstance.options;
const logFile = path__default["default"].resolve(logPath, `./${util.formatDate(logDateTim)}-xxl-job-${logId}.log`);
if (!fs__default["default"].existsSync(logFile)) {
const filename = getFullFilename(logPath, logDateTim, logId);
if (!fs__default["default"].existsSync(filename)) {
resolve({ findFlag: false, endFlag: true });
return;
}
const stream = fs__default["default"].createReadStream(logFile);
const stream = fs__default["default"].createReadStream(filename);
const rl = readline__default["default"].createInterface({ input: stream });

@@ -79,0 +79,0 @@ let lineNum = 0;

{
"name": "bc-schedule-server",
"version": "1.1.0",
"version": "1.1.1",
"description": "xxl-job koa server",

@@ -24,3 +24,4 @@ "keywords": [

"scripts": {
"dev": "nodemon src/index.ts",
"dev:js": "nodemon src/js/index.js",
"dev:ts": "nodemon src/ts/index.ts",
"dev:lib": "cross-env NODE_ENV=development rollup -c build/rollup.config.js -w",

@@ -27,0 +28,0 @@ "build": "rollup -c build/rollup.config.js",

@@ -11,4 +11,34 @@ # bc-schedule-server

### 其他
- 注册的函数不能是“箭头函数”和“匿名函数”
- 本地开发时建议配置 NODE_ENV=local 这样就不会启用 log 文件日志,而是使用在控制台输出
### 使用方式
- typescript 引入方式 `import { BcScheduleServer } form 'bc-schedule-server'`
- javascript 引入方式 `const { BcScheduleServer } require('bc-schedule-server')`
```
import { BcScheduleServer } form 'bc-schedule-server'
const schedule = new BcScheduleServer({
port: 9501,
scheduleCenterUrl: 'https://xxljob.xxx.com'
})
/**
* 注册待调用的定时任务
* 注意:不能是 ()=>{} 和 function(){} 方式
*/
const fn = (logger: ExposeLogger) => {
logger.info('# hahah')
}
const registered =schedule.registerTask([
fn,
function fn2(logger, xxlJobParams) {
logger.info('balabal')
},
async function fn3(logger, xxlJobParams) {},
])
// 返回已经注册的任务函数列表
console.log(registered) // [ 'fn', 'fn2', 'fn3' ]
```
### 配置参数

@@ -26,18 +56,29 @@ ```

}
```
// 基本使用方式
import { BcScheduleServer } form 'bc-schedule-server'
const schedule = new BcScheduleServer({
port: 9501,
scheduleCenterUrl: 'https://xxljob.xxx.com'
})
// 注册待调用的定时任务
schedule.registerTask([
function fn1(logger, xxlJobParams) {
logger.info('balabal')
},
async function fn2(logger, xxlJobParams) {},
])
```
### api接口信息
- 任务执行 [POST] /run
```
{
"jobId": 1, // 任务 id
"executorHandler": "test", // 当前待执行的任务名称
"executorParams": "{\"code\": 400, \"msg\": \"123\"}", // 执行时传递的参数
"executorBlockStrategy": "SERIAL_EXECUTION",
"executorTimeout": 0, // 超时时间
"logId": 1, // 日志 id
"logDateTime": 1679283887584, // 日志时间戳
"glueType": "BEAN", // 任务模式
"glueSource": "",
"glueUpdatetime": 1679283187000,
"broadcastIndex": 0,
"broadcastTotal": 1
}
```
- 日志读取 [POST] /log
```
{
"logDateTim": 1680925146000,
"logId": 1,
"fromLineNum": 1
}
```
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc