library-ts/node/users/scheduler/Task.ts

38 lines
845 B
TypeScript
Raw Normal View History

2025-11-15 18:58:30 +00:00
import { MinPriorityQueue } from '@datastructures-js/priority-queue';
import { Arrays } from '../../../browser/tools/Arrays';
import { DateHelper } from '../../../browser/date/DateHelper';
import { DateMath } from '../../../browser/date/DateMath';
export class Task
{
id:string;
2025-11-16 13:30:12 +00:00
userID:string;
appID:string;
2025-11-24 14:25:10 +00:00
utcDate:Date;
2025-11-15 18:58:30 +00:00
action:()=>void;
2025-11-16 13:30:12 +00:00
setUserContext( appID:string, userID:string )
{
this.appID = appID;
this.userID = userID;
return this;
}
static createIn( id:string, duration:number, action:()=>void )
2025-11-15 18:58:30 +00:00
{
let date = DateMath.fromNowAddSeconds( duration );
2025-11-16 13:30:12 +00:00
return Task.createAt( id, date, action );
2025-11-15 18:58:30 +00:00
}
2025-11-24 14:25:10 +00:00
static createAt( id:string, utcDate:Date, action:()=>void )
2025-11-15 18:58:30 +00:00
{
let task = new Task();
2025-11-16 13:30:12 +00:00
task.id = id;
2025-11-15 18:58:30 +00:00
task.action = action;
2025-11-24 14:25:10 +00:00
task.utcDate = utcDate;
2025-11-15 18:58:30 +00:00
return task;
}
}