/[sudobot]/trunk/src/utils/structures/Queue.ts
ViewVC logotype

Diff of /trunk/src/utils/structures/Queue.ts

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 428 by rakin, Mon Jul 29 17:30:11 2024 UTC revision 431 by rakin, Mon Jul 29 17:30:12 2024 UTC
# Line 1  Line 1 
1    /**
2    * This file is part of SudoBot.
3    *
4    * Copyright (C) 2021-2022 OSN Inc.
5    *
6    * SudoBot is free software; you can redistribute it and/or modify it
7    * under the terms of the GNU Affero General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10    *
11    * SudoBot is distributed in the hope that it will be useful, but
12    * WITHOUT ANY WARRANTY; without even the implied warranty of
13    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14    * GNU Affero General Public License for more details.
15    *
16    * You should have received a copy of the GNU Affero General Public License
17    * along with SudoBot. If not, see <https://www.gnu.org/licenses/>.
18    */
19    
20  import DiscordClient from "../../client/Client";  import DiscordClient from "../../client/Client";
21  import { v4 as uuid } from 'uuid';  import { generate as randomstring } from 'randomstring';
22  import QueuedJob, { IQueuedJob } from "../../models/QueuedJob";  import { IQueuedJob } from "../../models/QueuedJob";
23    
24  export interface QueueOptions {  export interface QueueOptions {
25      runAfter?: number;      runAfter?: number;
# Line 11  export interface QueueOptions { Line 30  export interface QueueOptions {
30    
31  export default abstract class Queue {  export default abstract class Queue {
32      protected completed = false;      protected completed = false;
33      protected runOn: number = 0;      public readonly runOn: number = 0;
34      public readonly id: string;      public readonly id: string;
35      protected readonly model: IQueuedJob;      public readonly model: IQueuedJob;
36      protected readonly timeout: NodeJS.Timeout;      protected readonly timeout: NodeJS.Timeout;
37        public readonly guild: string | undefined;
38    
39      constructor(protected client: DiscordClient, { runAfter, id, runAt, model }: QueueOptions) {      constructor(protected client: DiscordClient, { runAfter, id, runAt, model }: QueueOptions) {
40          if (runAfter !== 0 && runAfter !== 0 && !runAfter && !runAt) {          if (runAfter !== 0 && runAfter !== 0 && !runAfter && !runAt) {
# Line 22  export default abstract class Queue { Line 42  export default abstract class Queue {
42          }          }
43    
44          this.runOn = runAfter ? Date.now() + runAfter : runAt!.getTime();          this.runOn = runAfter ? Date.now() + runAfter : runAt!.getTime();
45          this.id = id ?? uuid();          this.id = id ?? randomstring(7);
46          this.model = model;          this.model = model;
47            this.guild = model.guild;
48    
49          const ms = this.runOn - Date.now();          const ms = this.runOn - Date.now();
50    

Legend:
Removed from v.428  
changed lines
  Added in v.431

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26