@chevre/domain 22.11.0-alpha.25 → 22.11.0-alpha.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -97,7 +97,7 @@ export declare class TaskRepo {
|
|
|
97
97
|
};
|
|
98
98
|
sort: {
|
|
99
99
|
numberOfTried?: factory.sortType;
|
|
100
|
-
runsAt
|
|
100
|
+
runsAt?: factory.sortType;
|
|
101
101
|
};
|
|
102
102
|
}): Promise<IExecutableTask<factory.taskName> | null>;
|
|
103
103
|
/**
|
|
@@ -133,9 +133,6 @@ export declare class TaskRepo {
|
|
|
133
133
|
runsAt: factory.sortType;
|
|
134
134
|
};
|
|
135
135
|
}, next?: INextFunction): Promise<Pick<factory.task.ITask<factory.taskName>, 'id' | 'name'> | null>;
|
|
136
|
-
/**
|
|
137
|
-
* emit OnTaskStatusChanged on delayed tasks
|
|
138
|
-
*/
|
|
139
136
|
/**
|
|
140
137
|
* Readyのままで期限切れのタスクをExpiredに変更する
|
|
141
138
|
*/
|
package/lib/chevre/repo/task.js
CHANGED
|
@@ -416,8 +416,9 @@ class TaskRepo {
|
|
|
416
416
|
remainingNumberOfTries: -1, // 残りトライ可能回数減らす
|
|
417
417
|
numberOfTried: 1 // トライ回数増やす
|
|
418
418
|
}
|
|
419
|
-
}, { new: true, projection: executableTaskProjection })
|
|
420
|
-
|
|
419
|
+
}, Object.assign({ new: true, projection: executableTaskProjection }, (typeof params.sort.numberOfTried === 'number' || typeof params.sort.runsAt === 'number')
|
|
420
|
+
? { sort: params.sort }
|
|
421
|
+
: undefined))
|
|
421
422
|
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
422
423
|
.lean() // lean(2024-09-26~)
|
|
423
424
|
.exec();
|
|
@@ -501,107 +502,6 @@ class TaskRepo {
|
|
|
501
502
|
return doc;
|
|
502
503
|
});
|
|
503
504
|
}
|
|
504
|
-
// public async findExecutableOne(params: {
|
|
505
|
-
// name?: {
|
|
506
|
-
// $eq?: factory.taskName;
|
|
507
|
-
// $nin?: factory.taskName[];
|
|
508
|
-
// };
|
|
509
|
-
// runsAt: {
|
|
510
|
-
// $lt: Date;
|
|
511
|
-
// };
|
|
512
|
-
// }): Promise<IExecutableTask<factory.taskName> | null> {
|
|
513
|
-
// if (!(params.runsAt.$lt instanceof Date)) {
|
|
514
|
-
// throw new factory.errors.Argument('runsAt.$lt', 'must be Date');
|
|
515
|
-
// }
|
|
516
|
-
// const nameEq = params.name?.$eq;
|
|
517
|
-
// const nameNin = params.name?.$nin;
|
|
518
|
-
// const query = this.taskModel.findOne(
|
|
519
|
-
// {
|
|
520
|
-
// status: { $eq: factory.taskStatus.Ready },
|
|
521
|
-
// runsAt: { $lt: params.runsAt.$lt },
|
|
522
|
-
// ...(typeof nameEq === 'string' || Array.isArray(nameNin))
|
|
523
|
-
// ? {
|
|
524
|
-
// name: {
|
|
525
|
-
// ...(typeof nameEq === 'string') ? { $eq: nameEq } : undefined,
|
|
526
|
-
// ...(Array.isArray(nameNin)) ? { $nin: nameNin } : undefined
|
|
527
|
-
// }
|
|
528
|
-
// }
|
|
529
|
-
// : undefined
|
|
530
|
-
// },
|
|
531
|
-
// executableTaskProjection
|
|
532
|
-
// )
|
|
533
|
-
// .sort({
|
|
534
|
-
// runsAt: factory.sortType.Ascending
|
|
535
|
-
// });
|
|
536
|
-
// // .hint('executeOneByName');
|
|
537
|
-
// // const explainResult = await query.explain();
|
|
538
|
-
// // console.dir(explainResult, { depth: null });
|
|
539
|
-
// // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
|
|
540
|
-
// const doc = await query.setOptions({ maxTimeMS: MONGO_MAX_TIME_MS })
|
|
541
|
-
// .lean<IExecutableTask<factory.taskName>>()
|
|
542
|
-
// .exec();
|
|
543
|
-
// if (doc === null) {
|
|
544
|
-
// // tslint:disable-next-line:no-null-keyword
|
|
545
|
-
// return null;
|
|
546
|
-
// }
|
|
547
|
-
// return doc;
|
|
548
|
-
// }
|
|
549
|
-
// discontinue(2025-05-26~)
|
|
550
|
-
/**
|
|
551
|
-
* emit OnTaskStatusChanged on delayed tasks
|
|
552
|
-
*/
|
|
553
|
-
// public async emitDelayedTasksEvent(params: {
|
|
554
|
-
// now: Date;
|
|
555
|
-
// /**
|
|
556
|
-
// * 指定期間遅延しているタスクを実行する
|
|
557
|
-
// */
|
|
558
|
-
// delayInSeconds: number;
|
|
559
|
-
// limit: number;
|
|
560
|
-
// name: {
|
|
561
|
-
// /**
|
|
562
|
-
// * 指定タスクのみ実行する
|
|
563
|
-
// */
|
|
564
|
-
// $in?: factory.taskName[];
|
|
565
|
-
// /**
|
|
566
|
-
// * 指定タスク以外のみ実行する
|
|
567
|
-
// */
|
|
568
|
-
// $nin?: factory.taskName[];
|
|
569
|
-
// };
|
|
570
|
-
// }) {
|
|
571
|
-
// const runsAtLt = moment(params.now)
|
|
572
|
-
// .add(-params.delayInSeconds, 'seconds')
|
|
573
|
-
// .toDate();
|
|
574
|
-
// const projection: ProjectionType<factory.task.ITask<factory.taskName>> = {
|
|
575
|
-
// _id: 0,
|
|
576
|
-
// id: { $toString: '$_id' },
|
|
577
|
-
// name: 1,
|
|
578
|
-
// status: 1
|
|
579
|
-
// };
|
|
580
|
-
// const delayedTasks = await this.taskModel.find(
|
|
581
|
-
// {
|
|
582
|
-
// status: { $eq: factory.taskStatus.Ready },
|
|
583
|
-
// runsAt: { $lt: runsAtLt },
|
|
584
|
-
// ...(Array.isArray(params.name.$in)) ? { name: { $in: params.name.$in } } : undefined,
|
|
585
|
-
// ...(Array.isArray(params.name.$nin)) ? { name: { $nin: params.name.$nin } } : undefined
|
|
586
|
-
// },
|
|
587
|
-
// projection
|
|
588
|
-
// )
|
|
589
|
-
// .limit(params.limit)
|
|
590
|
-
// .sort(sortOrder4executionOfTasks) // sort(2025-03-03~)
|
|
591
|
-
// .setOptions({ maxTimeMS: MONGO_MAX_TIME_MS })
|
|
592
|
-
// .lean<IDelayedTask[]>() // lean(2024-09-26~)
|
|
593
|
-
// .exec();
|
|
594
|
-
// if (delayedTasks.length > 0) {
|
|
595
|
-
// delayedTasks.forEach((delayedTask) => {
|
|
596
|
-
// taskEventEmitter.emitTaskStatusChanged({
|
|
597
|
-
// id: delayedTask.id,
|
|
598
|
-
// name: delayedTask.name,
|
|
599
|
-
// status: factory.taskStatus.Ready
|
|
600
|
-
// });
|
|
601
|
-
// });
|
|
602
|
-
// }
|
|
603
|
-
// return delayedTasks;
|
|
604
|
-
// }
|
|
605
505
|
/**
|
|
606
506
|
* Readyのままで期限切れのタスクをExpiredに変更する
|
|
607
507
|
*/
|
package/package.json
CHANGED