UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

51 lines (50 loc) 1.81 kB
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>;