0.7.17 • Published 3 years ago

@nestcloud/schedule v0.7.17

Weekly downloads
635
License
MIT
Repository
github
Last release
3 years ago

Description

This is a Nest module for using decorator schedule a job.

Installation

$ npm i --save @nestcloud/schedule

Quick Start

import { Injectable, LoggerService } from '@nestjs/common';
import { Cron, Interval, Timeout, NestSchedule, defaults } from '@nestcloud/schedule';

defaults.enable = true;
defaults.logger = new NestLogger();
defaults.maxRetry = -1;
defaults.retryInterval = 5000;

export class NestLogger implements LoggerService {
    log(message: string): any {
        console.log(message);
    }

    error(message: string, trace: string): any {
        console.error(message, trace);
    }

    warn(message: string): any {
        console.warn(message);
    }
}

@Injectable()
export class ScheduleService extends NestSchedule {  
  constructor(
    
  ) {
    super();
  }
  
  @Cron('0 0 2 * *', {
    startTime: new Date(), 
    endTime: new Date(new Date().getTime() + 24 * 60 * 60 * 1000),
    tz: 'Asia/Shanghai',
  })
  async syncData() {
    console.log('syncing data ...');
  }
  
  @Cron('0 0 4 * *')
  async clear() {
    console.log('clear data ...');
    await doClear();
  }
  
  @Timeout(5000)
  onceJob() {
    console.log('once job');
  }
  
  @Interval(2000)
  intervalJob() {
    console.log('interval job');
    
    // if you want to cancel the job, you should return true;
    return true;
  }
}

Distributed Support

import { Injectable } from '@nestjs/common';
import { Cron, NestDistributedSchedule } from '@nestcloud/schedule';

@Injectable()
export class ScheduleService extends NestDistributedSchedule {  
  constructor() {
    super();
  }
  
  async tryLock(method: string) {
    // If try lock fail, you should throw an error.
    throw new Error('try lock fail');
    
    return () => {
      // Release here.
    }
  }
  
  @Cron('0 0 4 * *')
  async clear() {
    console.log('clear data ...');
  }
}

API

Common options or defaults

fieldtyperequireddescription
enablebooleanfalsedefault is true, when false, the job will not execute
maxRetrynumberfalsethe max retry count, default is -1 not retry
retryIntervalnumberfalsethe retry interval, default is 5000
loggerLoggerServicefalsedefault is false, only available at defaults

Cron(expression: string, options: CronOptions)

fieldtyperequireddescription
expressionstringtruethe cron expression
options.startTimeDatefalsethe job's start time
options.endTimeDatefalsethe job's end time
options.tzstringfalsethe time zone

Interval(time: number, options: BaseOptions)

fieldtyperequireddescription
timenumbertruemillisecond
optionsobjectfalsesame as common options

Timeout(time: number, options: BaseOptions)

fieldtyperequireddescription
timenumbertruemillisecond
optionsobjectfalsesame as common options

Stay in touch

License

NestCloud is MIT licensed.

0.7.3-node1011

3 years ago

0.7.17

4 years ago

0.6.13

4 years ago

0.7.16

4 years ago

0.6.12

4 years ago

0.7.15

4 years ago

0.7.14

4 years ago

0.7.13

4 years ago

0.7.11

4 years ago

0.7.12

4 years ago

0.7.10

4 years ago

0.7.9

4 years ago

0.7.9-2

4 years ago

0.7.9-1

4 years ago

0.7.9-0

4 years ago

0.7.8

4 years ago

0.7.6

4 years ago

0.7.5

4 years ago

0.7.2

4 years ago

0.7.1

4 years ago

0.7.0

4 years ago

0.6.10-22

4 years ago

0.6.11

4 years ago

0.6.10

4 years ago

0.6.10-15

4 years ago

0.6.10-16

4 years ago

0.6.10-17

4 years ago

0.6.10-18

4 years ago

0.6.10-20

4 years ago

0.6.10-21

4 years ago

0.6.10-19

4 years ago

0.6.10-14

4 years ago

0.6.10-13

4 years ago

0.6.10-12

4 years ago

0.6.10-6

4 years ago

0.6.10-7

4 years ago

0.6.10-11

4 years ago

0.6.10-10

4 years ago

0.6.10-8

4 years ago

0.6.10-9

4 years ago

0.6.10-4

4 years ago

0.6.10-5

4 years ago

0.6.10-3

4 years ago

0.6.10-2

4 years ago

0.6.9

4 years ago

0.6.8

4 years ago

0.6.7

4 years ago

0.6.6

4 years ago

0.6.5

4 years ago

0.6.4

4 years ago

0.6.3

4 years ago

0.6.0

4 years ago

0.6.0-y.4

4 years ago

0.6.0-y.1

4 years ago

0.6.0-y.0

4 years ago

0.6.0-4

4 years ago

0.6.0-3

4 years ago

0.6.0-2

4 years ago

0.6.0-1

4 years ago

0.6.0-0

4 years ago

0.5.3

4 years ago

0.5.2

5 years ago

0.5.1

5 years ago

0.5.0-9

5 years ago

0.5.0-8

5 years ago

0.5.0-7

5 years ago

0.5.0-6

5 years ago

0.5.0-5

5 years ago

0.5.0-4

5 years ago

0.5.0-3

5 years ago

0.5.0-1

5 years ago

0.5.0-0

5 years ago

0.4.5-3

5 years ago

0.4.5-1

5 years ago

0.4.4

5 years ago

0.4.3

5 years ago

0.4.2

5 years ago

0.4.1

5 years ago

0.4.0

5 years ago

0.3.17

5 years ago

0.3.16

5 years ago

0.3.16-0

5 years ago

0.3.15

5 years ago

0.3.14

5 years ago

0.3.14-2

5 years ago

0.3.14-1

5 years ago

0.3.14-0

5 years ago

0.3.13

5 years ago

0.3.12

5 years ago

0.3.10

5 years ago

0.3.9

5 years ago

0.3.9-0

5 years ago

0.3.8

5 years ago

0.3.8-5

5 years ago

0.3.8-4

5 years ago

0.3.8-3

5 years ago

0.3.8-2

5 years ago

0.3.8-1

5 years ago

0.3.8-0

5 years ago

0.3.7

5 years ago

0.3.6

5 years ago

0.3.5

5 years ago

0.3.4

5 years ago

0.3.3

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.5-3

5 years ago

0.2.5-2

5 years ago

0.2.5-1

5 years ago

0.2.5-0

5 years ago

0.2.4

5 years ago

0.2.4-3

5 years ago

0.2.4-2

5 years ago

0.2.4-1

5 years ago

0.2.4-0

5 years ago

0.1.1

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.1-5

5 years ago

0.2.1-4

5 years ago

0.2.1-3

5 years ago

0.2.1-2

5 years ago

0.2.1-1

5 years ago

0.2.1-0

5 years ago

0.1.0

5 years ago