UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

106 lines (94 loc) 3.99 kB
// tslint:disable:no-console import * as mongoose from 'mongoose'; import { chevre } from '../../../../lib/index'; mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false }); // tslint:disable-next-line:max-func-body-length async function main() { const now = new Date(); console.log('--------', 'aggregating...', ' --------', now); const assetTransactionRepo = await chevre.repository.AssetTransaction.createInstance(mongoose.connection); const transactionRepo = await chevre.repository.Transaction.createInstance(mongoose.connection); const taskRepo = await chevre.repository.Task.createInstance(mongoose.connection); // {status:"InProgress"}を確認 // {"tasksExportAction.actionStatus":{$ne:"CompletedActionStatus"}}を確認 for (const transactionType of [ chevre.factory.transactionType.PlaceOrder, chevre.factory.transactionType.ReturnOrder ]) { const inProgressCount = await transactionRepo.count({ limit: 1000, status: { $in: [chevre.factory.transactionStatusType.InProgress] }, typeOf: transactionType }); console.log(transactionType, 'inProgressCount:', inProgressCount.count, now); const unCompletedTasksExportCount = await transactionRepo.count({ limit: 1000, tasksExportAction: { actionStatus: { $in: [ chevre.factory.actionStatusType.ActiveActionStatus, chevre.factory.actionStatusType.CanceledActionStatus, chevre.factory.actionStatusType.FailedActionStatus, chevre.factory.actionStatusType.PotentialActionStatus ] } }, typeOf: transactionType }); console.log(transactionType, 'unCompletedTasksExportCount:', unCompletedTasksExportCount.count, now); } for (const assetTransactionType of [ chevre.factory.assetTransactionType.Pay, chevre.factory.assetTransactionType.Refund, chevre.factory.assetTransactionType.Reserve, chevre.factory.assetTransactionType.CancelReservation ]) { const inProgressCount = await assetTransactionRepo.count({ limit: 1000, status: { $in: [chevre.factory.transactionStatusType.InProgress] }, typeOf: <any>assetTransactionType }); console.log(assetTransactionType, 'inProgressCount:', inProgressCount.count, now); const unCompletedTasksExportCount = await assetTransactionRepo.count({ limit: 1000, tasksExportAction: { actionStatus: { $in: [ chevre.factory.actionStatusType.ActiveActionStatus, chevre.factory.actionStatusType.CanceledActionStatus, chevre.factory.actionStatusType.FailedActionStatus, chevre.factory.actionStatusType.PotentialActionStatus ] } }, typeOf: <any>assetTransactionType }); console.log(assetTransactionType, 'unCompletedTasksExportCount:', unCompletedTasksExportCount.count, now); } const readyTaskCount = await taskRepo.count({ limit: 100, statuses: [ chevre.factory.taskStatus.Ready, chevre.factory.taskStatus.Running ], name: { $nin: [ chevre.factory.taskName.ImportEventCapacitiesFromCOA, chevre.factory.taskName.ImportEventsFromCOA, chevre.factory.taskName.ImportOffersFromCOA ] }, runsThrough: now }); console.log('readyTaskCount:', readyTaskCount.count, now); } const INTERVAL_MS = 60000; // const INTERVAL_MS = 5000; setInterval( () => { main() .then() .catch(console.error); }, INTERVAL_MS );