sakura-time-service
v0.0.1
Published
Create time-service for auto backup database, auto send email or refresh token service
Downloads
3
Maintainers
Readme
Table Of Contents
API
1. RegularService
You can use RegularService to create an automatic mailing service, an automatic backup service, or anything you want.
import {RegularService, IntervalService, sleep } from 'sakura-time-service';
const autoMailingService = new RegularService({
// The callback will be called when the clock points at timestamps
// declared at the times
callback: async (e) => {
// You can stop the service when the service is running.
e.currentTarget.stop();
// or
autoMailingService.stop();
// You can setTimes when the service is running.
autoMailingService.setTimes([
'22:00:00',
'23:15:15',
]);
// Or
e.currentTarget.setTimes([
'22:00:00',
'23:15:15',
]);
// This will not stop your application
await sleep(15_000);
// After 15 seconds
// This will not stop your application
throw new Error('This will trigger error handling');
},
// This is necessary because your server may be located anywhere,
// the time difference will cause the results to be wrong.
timeZone: 'America/New_York', // default: undefined
times: [
'00:00:00', // callback will be called at 00:00:00
'22:00:00' //
],
});
// Event when the service throw an error
autoMailingService.onError = (e) => {
// stop service
e.currentTarget.stop();
// or
autoMailingService.stop()
// restart service
e.currentTarget.restart();
// or
autoMailingService.restart();
console.log(e.error);
}
autoMailingService.stop(); // stop service
autoMailingService.start(); // stop service
autoMailingService.restart(); // restart service
autoMailingService.status; // return service status: 'stopped' or 'running' ;
autoMailingService.times; //
autoMailingService.timeZone //
// You can setTimes when the service is running.
autoMailingService.setTimes([
'22:00:00',
'23:15:15',
]);
2. IntervalService
You can use the IntervalService to create an auto refresh token,...
import {RegularService, IntervalService, sleep } from 'sakura-time-service';
const autoRefreshToken = new IntervalService({
callback: async (e) => {
// you can change the delay time when the service is running.
e.currentTarget.delay = 200; // 0.2 seconds
// or
autoRefreshToken.delay = 200;
},
delay: 15_000 // 15 seconds
});
autoRefreshToken.onError = (e) => {
// your code here ...
}
autoRefreshToken.delay // get and set the delay time.
autoRefreshToken.status // return service status: 'stopped' or 'running' ;
autoRefreshToken.start();
autoRefreshToken.stop();
autoRefreshToken.restart();
3. sleep
import { sleep } from 'sakura-time-service';
const func = async () => {
await sleep(15_000); // unit: milliseconds
// After 15 seconds
}