@chevre/domain 22.11.0-alpha.20 → 22.11.0-alpha.22

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.
@@ -11,7 +11,7 @@ mongoose.Model.on('index', (...args) => {
11
11
  async function main() {
12
12
  await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
13
13
 
14
- await chevre.repository.Member.createInstance(mongoose.connection);
14
+ await chevre.repository.Task.createInstance(mongoose.connection);
15
15
  console.log('success!');
16
16
  }
17
17
 
@@ -186,6 +186,15 @@ const indexes = [
186
186
  }
187
187
  }
188
188
  ],
189
+ [
190
+ { status: 1, lastTriedAt: 1, remainingNumberOfTries: 1, name: 1 },
191
+ {
192
+ name: 'abortMany',
193
+ partialFilterExpression: {
194
+ lastTriedAt: { $type: 'date' }
195
+ }
196
+ }
197
+ ],
189
198
  [
190
199
  { status: 1, expires: 1 },
191
200
  {
@@ -150,7 +150,11 @@ export declare class TaskRepo {
150
150
  * 十分に小さい数値を指定すれば、実質残り試行回数に関係なくRunningがReadyに変更されることになる
151
151
  */
152
152
  remainingNumberOfTries: {
153
- $gt: number;
153
+ $gte?: number;
154
+ $lte?: number;
155
+ };
156
+ name: {
157
+ $in?: factory.taskName[];
154
158
  };
155
159
  }): Promise<UpdateWriteOpResult>;
156
160
  /**
@@ -163,6 +167,9 @@ export declare class TaskRepo {
163
167
  }): Promise<UpdateWriteOpResult>;
164
168
  abortMany(params: {
165
169
  intervalInMinutes: number;
170
+ name: {
171
+ $in?: factory.taskName[];
172
+ };
166
173
  }): Promise<UpdateWriteOpResult>;
167
174
  /**
168
175
  * タスクIDから実行結果とステータスを保管する
@@ -626,18 +626,16 @@ class TaskRepo {
626
626
  const lastTriedAtShoudBeLessThan = moment()
627
627
  .add(-params.intervalInMinutes, 'minutes')
628
628
  .toDate();
629
- const remainingNumberOfTriesGt = params.remainingNumberOfTries.$gt;
630
- return this.taskModel.updateMany(
631
- // name: 'retry'のindexと連動しているので、条件の順序などには注意すること
632
- // @see schemas/task
633
- {
634
- status: { $eq: factory.taskStatus.Running },
635
- lastTriedAt: {
629
+ const remainingNumberOfTriesGte = params.remainingNumberOfTries.$gte;
630
+ const remainingNumberOfTriesLte = params.remainingNumberOfTries.$lte;
631
+ return this.taskModel.updateMany(Object.assign(Object.assign(Object.assign({ status: { $eq: factory.taskStatus.Running }, lastTriedAt: {
636
632
  $type: 'date',
637
633
  $lt: lastTriedAtShoudBeLessThan
638
- },
639
- remainingNumberOfTries: { $gt: remainingNumberOfTriesGt }
640
- }, {
634
+ } }, (typeof remainingNumberOfTriesGte === 'number')
635
+ ? { remainingNumberOfTries: { $gte: remainingNumberOfTriesGte } }
636
+ : undefined), (typeof remainingNumberOfTriesLte === 'number')
637
+ ? { remainingNumberOfTries: { $lte: remainingNumberOfTriesLte } }
638
+ : undefined), (Array.isArray(params.name.$in)) ? { name: { $in: params.name.$in } } : undefined), {
641
639
  $set: {
642
640
  status: factory.taskStatus.Ready // 実行前に変更
643
641
  }
@@ -706,14 +704,10 @@ class TaskRepo {
706
704
  const lastTriedAtShoudBeLessThan = moment()
707
705
  .add(-params.intervalInMinutes, 'minutes')
708
706
  .toDate();
709
- return this.taskModel.updateMany({
710
- status: { $eq: factory.taskStatus.Running },
711
- lastTriedAt: {
707
+ return this.taskModel.updateMany(Object.assign({ status: { $eq: factory.taskStatus.Running }, lastTriedAt: {
712
708
  $type: 'date',
713
709
  $lt: lastTriedAtShoudBeLessThan
714
- },
715
- remainingNumberOfTries: { $eq: 0 }
716
- }, {
710
+ }, remainingNumberOfTries: { $eq: 0 } }, (Array.isArray(params.name.$in)) ? { name: { $in: params.name.$in } } : undefined), {
717
711
  $set: {
718
712
  status: factory.taskStatus.Aborted,
719
713
  dateAborted: new Date()
package/package.json CHANGED
@@ -115,5 +115,5 @@
115
115
  "postversion": "git push origin --tags",
116
116
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
117
117
  },
118
- "version": "22.11.0-alpha.20"
118
+ "version": "22.11.0-alpha.22"
119
119
  }