@chevre/domain
Version:
Chevre Domain Library for Node.js
106 lines (94 loc) • 3.99 kB
text/typescript
// 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
);