13 |
}; |
}; |
14 |
|
|
15 |
export default class QueueManager extends Service { |
export default class QueueManager extends Service { |
16 |
protected readonly queues: Collection<string, Queue> = new Collection(); |
public readonly queues: Collection<string, Queue> = new Collection(); |
17 |
|
|
18 |
async loadQueues() { |
async loadQueues() { |
19 |
const models = await QueuedJob.find(); |
const models = await QueuedJob.find(); |
21 |
for await (const model of models) { |
for await (const model of models) { |
22 |
const { default: Queue }: { default: new (client: DiscordClient, queueOptions: QueueOptions) => Queue } = await import(path.resolve(__dirname, '../queues/', model.className)); |
const { default: Queue }: { default: new (client: DiscordClient, queueOptions: QueueOptions) => Queue } = await import(path.resolve(__dirname, '../queues/', model.className)); |
23 |
console.log(Queue); |
console.log(Queue); |
24 |
this.queues.set(model.uuid, new Queue(this.client, { model, id: model.uuid, runAt: new Date(model.runOn) })); |
this.queues.set(model.uuid, new Queue(this.client, { model, id: model.uuid, runAt: model.runOn })); |
25 |
console.log("Found queue: ", model.className); |
console.log("Found queue: ", model.className); |
26 |
} |
} |
27 |
} |
} |
40 |
} |
} |
41 |
|
|
42 |
const id = uuid(); |
const id = uuid(); |
43 |
const model = await QueuedJob.create({ uuid: id, data, runOn: runAfter ? Date.now() + runAfter : runAt!.getTime(), createdAt: new Date(), className: queueClass.name }); |
const model = await QueuedJob.create({ uuid: id, data, runOn: runAfter ? new Date(Date.now() + runAfter) : runAt!, createdAt: new Date(), className: queueClass.name }); |
44 |
const queue = new queueClass(this.client, { model, id, runAt, runAfter }); |
const queue = new queueClass(this.client, { model, id, runAt, runAfter }); |
45 |
this.setQueue(queue); |
this.setQueue(queue); |
46 |
} |
} |