Eggjs 集群环境下扩展定时任务类型 agent.js

// agent.js
'use strict'const _func = async agent => {
	class ClusterStrategy extends agent.TimerScheduleStrategy {
		async handler() {
			try {
				const scheduleName = this.key.replace(`${this.agent.baseDir}\\app\\schedule\\`, '');
				const result = await agent.redis.set(redis_key, scheduleName, 'EX', 50, 'NX');
				if (result === 'OK') {
					this.sendone();
				} else {
					this._scheduleNext();
				}
			} catch (err) {
				agent.loggers.exceptionLogger.info(`key: ${this.key}, err: ${err}`);
			}
		}
	}
	agent.schedule.use('schedule_name', ClusterStrategy);
}

class AppBootHook {
	constructor(app) {
		this.app = app;
	}
	async configWillLoad() {
		await _func(this.app);
	}
}

module.exports = AppBootHook;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值