@antelopejs/interface-redis-scheduler
用于羚羊JS的 Redis 任务调度 。 您为特定时间安排任务, 当任务到期时, 应用程序中的收听者会运行任务, 失败时最多重复三次 .
它提供的东西
setHandler注册运行一种任务的函数.addTask在毫秒内为 Unix 时间戳安排任务.removeTask运行前删除已排队的条目.enableListener开始任务处理.disableListener只关闭通知订阅者,而不关闭待决定时器.- 任务生活在一个Redis排序的集中,因此它们在应用程序重新启动后存活下来,应用程序的每一个实例都看到相同的队列. 每个应尽的任务都交给一个听众.
执行情况
| 模块 | 页:1 |
|---|---|
@antelopejs/redis | 还执行 @antelopejs/interface-redis,用于提供调度器使用的 Redis 客户端 |
安装
将界面添加到调度任务的模块中:
pnpm add @antelopejs/interface-redis-scheduler
然后在项目中添加执行内容:
ajs project modules add @antelopejs/redis
快开始
import { Logging } from "@antelopejs/interface-core/logging";
import {
addTask,
disableListener,
enableListener,
setHandler,
} from "@antelopejs/interface-redis-scheduler";
const ONE_HOUR_MS = 60 * 60 * 1000;
setHandler("overdue-notice", async (taskInfo) => {
const { memberId } = JSON.parse(taskInfo);
Logging.Info(`Remind member ${memberId}`);
});
export async function start() {
await enableListener();
await addTask(
"overdue-notice",
Date.now() + ONE_HOUR_MS,
JSON.stringify({ memberId: "M-1042" }),
);
}
export async function stop() {
await disableListener();
}
在您为它安排任务之前注册一个处理器 . addTask 拒绝此进程尚未注册的处理器名称 .
disableListener() 不是完全关闭或暂停。 待定的计时器和运行中的处理器可以继续处理任务. 读取 寿命周期和交货限制 在你用它关闭之前.
文档
兼容性
模块宣布这些对等关系:
| 软件包 | 支助 | 测试过 |
|---|---|---|
@antelopejs/interface-core | >=0.2.4 <1.0.0 | 0.2.4 |
@antelopejs/interface-redis | >=0.0.9 <1.0.0 | 0.0.9 |
捐款
读取 捐款额 在你打开拉动请求之前。 当地检查为:
pnpm install
pnpm lint
pnpm test