UNPKG

timed-silky

Version:

Timed-Silky 是基于一款基于 TypeScript 的定时任务调度器。得益于 TypeScript,Timed-Silky 可以用符合特定句式的自然语言描述任务的调度规则,提供丝滑的链式调用接口。

18 lines (17 loc) 578 B
function createTask(callback, ruleChain, ...args) { let lastRunAt = 0; let timeOutHandle; let f = async function () { let r = callback(...args); if (r instanceof Promise) { await r; } clearTimeout(timeOutHandle); lastRunAt = Date.now(); let nextRunAt = ruleChain.generateNextTime(lastRunAt); setTimeout(f, nextRunAt - Date.now()); }; let nextRunAt = ruleChain.generateNextTime(lastRunAt); timeOutHandle = setTimeout(f, nextRunAt - Date.now()); } export { createTask };