@chevre/domain 26.0.0-alpha.21 → 26.0.0-alpha.23
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.
|
@@ -4,6 +4,8 @@ import { IDocType } from './mongoose/schemas/task';
|
|
|
4
4
|
type IKeyOfProjection = keyof factory.task.ITask<factory.taskName>;
|
|
5
5
|
type IFindParams = factory.task.ISearchConditions & {
|
|
6
6
|
data?: never;
|
|
7
|
+
lastTriedFrom?: never;
|
|
8
|
+
lastTriedThrough?: never;
|
|
7
9
|
};
|
|
8
10
|
/**
|
|
9
11
|
* タスク管理リポジトリ
|
|
@@ -68,12 +68,12 @@ class AdminTaskRepo {
|
|
|
68
68
|
if (params.runsThrough instanceof Date) {
|
|
69
69
|
andConditions.push({ runsAt: { $lte: params.runsThrough } });
|
|
70
70
|
}
|
|
71
|
-
if (params.lastTriedFrom instanceof Date) {
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
if (params.lastTriedThrough instanceof Date) {
|
|
75
|
-
|
|
76
|
-
}
|
|
71
|
+
// if (params.lastTriedFrom instanceof Date) {
|
|
72
|
+
// andConditions.push({ lastTriedAt: { $type: 'date', $gte: params.lastTriedFrom } });
|
|
73
|
+
// }
|
|
74
|
+
// if (params.lastTriedThrough instanceof Date) {
|
|
75
|
+
// andConditions.push({ lastTriedAt: { $type: 'date', $lte: params.lastTriedThrough } });
|
|
76
|
+
// }
|
|
77
77
|
const dateAbortedGte = params.dateAborted?.$gte;
|
|
78
78
|
if (dateAbortedGte instanceof Date) {
|
|
79
79
|
andConditions.push({ dateAborted: { $type: 'date', $gte: dateAbortedGte } });
|
|
@@ -4,6 +4,7 @@ exports.modelName = exports.indexes = void 0;
|
|
|
4
4
|
exports.createSchema = createSchema;
|
|
5
5
|
const mongoose_1 = require("mongoose");
|
|
6
6
|
const writeConcern_1 = require("../writeConcern");
|
|
7
|
+
const factory_1 = require("../../../factory");
|
|
7
8
|
const settings_1 = require("../../../settings");
|
|
8
9
|
const modelName = 'Task';
|
|
9
10
|
exports.modelName = modelName;
|
|
@@ -51,19 +52,19 @@ const schemaOptions = {
|
|
|
51
52
|
const indexes = [
|
|
52
53
|
[
|
|
53
54
|
{ 'project.id': 1, runsAt: -1 },
|
|
54
|
-
{ name: 'searchByProjectId-v20220721' }
|
|
55
|
+
{ name: 'searchByProjectId-v20220721' } // タスク検索で使用中
|
|
55
56
|
],
|
|
56
57
|
[
|
|
57
58
|
{ name: 1, runsAt: -1 },
|
|
58
|
-
{ name: 'searchByName-v2' }
|
|
59
|
+
{ name: 'searchByName-v2' } // タスク検索で使用中
|
|
59
60
|
],
|
|
60
61
|
[
|
|
61
62
|
{ status: 1, runsAt: -1 },
|
|
62
|
-
{ name: 'searchByStatus-v2' }
|
|
63
|
+
{ name: 'searchByStatus-v2' } // タスク検索で使用中
|
|
63
64
|
],
|
|
64
65
|
[
|
|
65
66
|
{ runsAt: -1 },
|
|
66
|
-
{ name: 'searchByRunsAt-v2' }
|
|
67
|
+
{ name: 'searchByRunsAt-v2' } // タスク検索で使用中
|
|
67
68
|
],
|
|
68
69
|
// identifierはユニークインデックス有なので不要(2026-08-07~)
|
|
69
70
|
// [
|
|
@@ -79,25 +80,27 @@ const indexes = [
|
|
|
79
80
|
[
|
|
80
81
|
{ dateAborted: 1, runsAt: -1 },
|
|
81
82
|
{
|
|
82
|
-
name: 'searchByDateAborted',
|
|
83
|
+
name: 'searchByDateAborted', // notifyAbortedTasksByEmailで使用中
|
|
83
84
|
partialFilterExpression: {
|
|
84
85
|
dateAborted: { $type: 'date' }
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
],
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
89
|
+
// discontinue(2026-08-08~)
|
|
90
|
+
// [
|
|
91
|
+
// { lastTriedAt: 1, runsAt: -1 },
|
|
92
|
+
// {
|
|
93
|
+
// name: 'searchByLastTriedAt-v2',
|
|
94
|
+
// partialFilterExpression: {
|
|
95
|
+
// lastTriedAt: { $type: 'date' }
|
|
96
|
+
// }
|
|
97
|
+
// }
|
|
98
|
+
// ],
|
|
99
|
+
// discontinue(2026-08-08~)
|
|
100
|
+
// [
|
|
101
|
+
// { remainingNumberOfTries: 1, runsAt: -1 },
|
|
102
|
+
// { name: 'searchByRemainingNumberOfTries-v2' }
|
|
103
|
+
// ],
|
|
101
104
|
[
|
|
102
105
|
{ 'data.id': 1, runsAt: -1 },
|
|
103
106
|
{
|
|
@@ -107,10 +110,11 @@ const indexes = [
|
|
|
107
110
|
}
|
|
108
111
|
}
|
|
109
112
|
],
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
113
|
+
// 遅延タスク実行時のソート条件をrunsAtのみに統一したため、numberOfTriedを含めたインデックスはもう不要(2026-08-08~)
|
|
114
|
+
// [
|
|
115
|
+
// { status: 1, name: 1, numberOfTried: 1, runsAt: 1 },
|
|
116
|
+
// { name: 'executeOneByName' }
|
|
117
|
+
// ],
|
|
114
118
|
[
|
|
115
119
|
{ status: 1, runsAt: 1, name: 1 },
|
|
116
120
|
{ name: 'executeOneByNameIfExists' } // add(2025-03-08~)
|
|
@@ -220,6 +224,27 @@ const indexes = [
|
|
|
220
224
|
// ],
|
|
221
225
|
];
|
|
222
226
|
exports.indexes = indexes;
|
|
227
|
+
const EXPIRE_AFTER_SECONDS = typeof process.env.TASK_EXPIRE_AFTER_SECONDS === 'string'
|
|
228
|
+
? Number(process.env.TASK_EXPIRE_AFTER_SECONDS)
|
|
229
|
+
: undefined;
|
|
230
|
+
// 0より大きい数値が設定されている場合のみ ttlインデックスを追加
|
|
231
|
+
if (typeof EXPIRE_AFTER_SECONDS === 'number' && EXPIRE_AFTER_SECONDS > 0) {
|
|
232
|
+
indexes.push([
|
|
233
|
+
{ runsAt: 1 },
|
|
234
|
+
{
|
|
235
|
+
name: 'ttlByRunsAt',
|
|
236
|
+
expireAfterSeconds: EXPIRE_AFTER_SECONDS,
|
|
237
|
+
partialFilterExpression: {
|
|
238
|
+
status: {
|
|
239
|
+
$in: [
|
|
240
|
+
factory_1.factory.taskStatus.Aborted,
|
|
241
|
+
factory_1.factory.taskStatus.Executed
|
|
242
|
+
]
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
]);
|
|
247
|
+
}
|
|
223
248
|
/**
|
|
224
249
|
* タスクスキーマ
|
|
225
250
|
*/
|
|
@@ -85,7 +85,7 @@ class TaskDelayedRepo {
|
|
|
85
85
|
if (!(params.runsAt.$lt instanceof Date)) {
|
|
86
86
|
throw new factory_1.factory.errors.Argument('runsAt.$lt', 'must be Date');
|
|
87
87
|
}
|
|
88
|
-
// インデックスについては、name指定であれば'
|
|
88
|
+
// インデックスについては、name指定であれば'runDelayedTaskByName'を想定
|
|
89
89
|
const filter = {
|
|
90
90
|
status: { $eq: factory_1.factory.taskStatus.Ready },
|
|
91
91
|
name: params.name,
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@aws-sdk/client-cognito-identity-provider": "3.1090.0",
|
|
13
13
|
"@aws-sdk/credential-providers": "3.1090.0",
|
|
14
|
-
"@chevre/factory": "10.3.0-alpha.
|
|
14
|
+
"@chevre/factory": "10.3.0-alpha.1",
|
|
15
15
|
"@motionpicture/coa-service": "10.0.0",
|
|
16
16
|
"@motionpicture/gmo-service": "6.1.0-alpha.0",
|
|
17
17
|
"@sendgrid/client": "8.1.4",
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
"postversion": "git push origin --tags",
|
|
89
89
|
"prepublishOnly": "npm run clean && npm run build"
|
|
90
90
|
},
|
|
91
|
-
"version": "26.0.0-alpha.
|
|
91
|
+
"version": "26.0.0-alpha.23"
|
|
92
92
|
}
|