@chevre/domain
Version:
Chevre Domain Library for Node.js
51 lines (50 loc) • 1.81 kB
TypeScript
import * as mongoose from 'mongoose';
import * as redis from 'redis';
import * as factory from '../factory';
import { MongoRepository as TaskRepo } from '../repo/task';
export interface IConnectionSettings {
/**
* MongoDBコネクション
*/
connection: mongoose.Connection;
/**
* Redisクライアント
*/
redisClient?: redis.RedisClient;
}
export interface ISettings extends IConnectionSettings {
/**
* タスクリポジトリー
*/
taskRepo: TaskRepo;
}
export declare type TaskOperation<T> = (repos: {
task: TaskRepo;
}) => Promise<T>;
export declare type IExecuteOperation<T> = (settings: ISettings) => Promise<T>;
export declare type IOperation<T> = (settings: IConnectionSettings) => Promise<T>;
export declare const ABORT_REPORT_SUBJECT = "Task aborted !!!";
/**
* execute a task by taskName
* タスク名でタスクをひとつ実行する
* @param taskName タスク名
*/
export declare function executeByName(taskName: factory.taskName): IExecuteOperation<void>;
/**
* execute a task
* タスクを実行する
* @param task タスクオブジェクト
*/
export declare function execute(task: factory.task.ITask): IExecuteOperation<void>;
/**
* retry tasks in running status
* 実行中ステータスのままになっているタスクをリトライする
* @param intervalInMinutes 最終トライ日時から何分経過したタスクをリトライするか
*/
export declare function retry(intervalInMinutes: number): TaskOperation<void>;
/**
* abort a task
* トライ可能回数が0に達したタスクを実行中止する
* @param intervalInMinutes 最終トライ日時から何分経過したタスクを中止するか
*/
export declare function abort(intervalInMinutes: number): TaskOperation<void>;