-
-
Save wootwoot1234/49cb7d082850d93f8cd03da164644cfb to your computer and use it in GitHub Desktop.
SO_67375281
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const mongoose = require('mongoose'); | |
const moment = require('moment'); | |
const Schema = mongoose.Schema; | |
const user = process.env.SO_USER; | |
const pass = process.env.SO_PASS; | |
const uri = process.env.SO_URI; | |
const throng = require('throng') | |
mongoose.Promise = global.Promise; | |
mongoose.connect(uri, { | |
useNewUrlParser: true, | |
useCreateIndex: true, | |
useFindAndModify: false, | |
useUnifiedTopology: true | |
// auth: {user: user, password: pass} | |
}); | |
// mongoose.connect(uri, {auth: {user: user, password: pass}, useNewUrlParser: true, useUnifiedTopology: true}); | |
const MessageS = new Schema( | |
{ | |
accountID: {type: Schema.Types.ObjectId, ref: "Account", required: true}, | |
listingID: {type: Schema.Types.ObjectId, ref: "Listing", required: true}, | |
messageRuleID: {type: Schema.Types.ObjectId, ref: "MessageRule", required: true}, | |
reservationID: {type: Schema.Types.ObjectId, ref: "Reservation", required: true}, | |
lockedAt: Date, | |
status: String | |
}, | |
{timestamps: true} | |
); | |
MessageS.index( | |
{ | |
listingID: 1, | |
messageRuleID: 1, | |
reservationID: 1 | |
}, | |
{unique: true, name: "Message_index_0"} | |
); | |
const Message = mongoose.model('Message', MessageS); | |
const messageQuery = { | |
accountID: "604f9355eeab332490184533", | |
listingID: "604f9358be89f997345b2380", | |
messageRuleID: "607d44e75d54c700041f38e1", | |
reservationID: "605118b7694b9765f49787e1" | |
}; | |
async function start() { | |
const time = moment().toDate(); | |
try { | |
const message = await Message.create(messageQuery); | |
console.log("CREATED A MESSAGE", message._id); | |
} catch (error) { | |
if (error.code !== 11000) { | |
// ignore duplicate key error | |
throw error; | |
} else { | |
console.log("DUPLICATE MESSAGE"); | |
} | |
} | |
const cutoff = moment().subtract( | |
1, | |
"minutes" | |
); | |
const message = await Message.findOneAndUpdate( | |
{ | |
...messageQuery, | |
status: {$nin: ["disabled", "sent"]}, | |
$or: [ | |
{lockedAt: {$exists: false}}, | |
{lockedAt: null}, | |
{lockedAt: {$lte: cutoff}} | |
] | |
}, | |
{lockedAt: moment().toDate()} | |
); | |
// If no message is defined, then it's either sent, disabled, or is locked | |
if (!message) { | |
console.log("Existing, message is either sent, disabled, or is locked"); | |
return; | |
} | |
await Message.findOneAndUpdate(messageQuery, { | |
status: "sent", | |
$unset: {lockedAt: ""} // Not sure this is needed | |
}); | |
console.log("SEND MESSAGE", time, message._id); | |
} | |
let id = 0; | |
const db = mongoose.connection; | |
db.on('error', console.error.bind(console, 'connection error:')); | |
db.on('close', process.exit ) | |
db.once('open', async function() { | |
await Message.deleteOne(messageQuery); | |
throng({ | |
worker: start, | |
count: 50, | |
lifetime: Infinity | |
}); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATED A MESSAGE 60920fb1900221c1b209c749 | |
CREATED A MESSAGE 60920fb141ea1fc1af42b842 | |
DUPLICATE MESSAGE | |
CREATED A MESSAGE 60920fb18bb100c1b0dcc17c | |
CREATED A MESSAGE 60920fb11574c3c1b329eb32 | |
Existing, message is either sent, disabled, or is locked | |
CREATED A MESSAGE 60920fb15ffa3dc1b477d3fb | |
DUPLICATE MESSAGE | |
DUPLICATE MESSAGE | |
Existing, message is either sent, disabled, or is locked | |
DUPLICATE MESSAGE | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
DUPLICATE MESSAGE | |
DUPLICATE MESSAGE | |
DUPLICATE MESSAGE | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
SEND MESSAGE 2021-05-05T03:23:29.622Z 60920fb15ffa3dc1b477d3fb | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
CREATED A MESSAGE 60920fb16405f7c1bdacf384 | |
DUPLICATE MESSAGE | |
CREATED A MESSAGE 60920fb178a11ac1be67bab3 | |
CREATED A MESSAGE 60920fb120576ec1bb79ec0a | |
Existing, message is either sent, disabled, or is locked | |
DUPLICATE MESSAGE | |
CREATED A MESSAGE 60920fb189993bc1c497104b | |
DUPLICATE MESSAGE | |
DUPLICATE MESSAGE | |
CREATED A MESSAGE 60920fb173c401c1c71a0878 | |
Existing, message is either sent, disabled, or is locked | |
SEND MESSAGE 2021-05-05T03:23:29.791Z 60920fb120576ec1bb79ec0a | |
DUPLICATE MESSAGE | |
DUPLICATE MESSAGE | |
DUPLICATE MESSAGE | |
CREATED A MESSAGE 60920fb14b22bac1cc805be6 | |
Existing, message is either sent, disabled, or is locked | |
DUPLICATE MESSAGE | |
DUPLICATE MESSAGE | |
CREATED A MESSAGE 60920fb162faf0c1cda0a00a | |
SEND MESSAGE 2021-05-05T03:23:29.828Z 60920fb189993bc1c497104b | |
Existing, message is either sent, disabled, or is locked | |
DUPLICATE MESSAGE | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
DUPLICATE MESSAGE | |
CREATED A MESSAGE 60920fb110591ac1cb0451b8 | |
CREATED A MESSAGE 60920fb1a0629dc1ca3f4364 | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
CREATED A MESSAGE 60920fb1ccd543c1d593e12b | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
CREATED A MESSAGE 60920fb2d315ccc1d7122da4 | |
DUPLICATE MESSAGE | |
SEND MESSAGE 2021-05-05T03:23:29.934Z 60920fb1ccd543c1d593e12b | |
Existing, message is either sent, disabled, or is locked | |
DUPLICATE MESSAGE | |
CREATED A MESSAGE 60920fb2a57a81c1c8e47b8b | |
CREATED A MESSAGE 60920fb272b17fc1d2ea65b6 | |
DUPLICATE MESSAGE | |
CREATED A MESSAGE 60920fb22dc775c1ce0cf984 | |
DUPLICATE MESSAGE | |
DUPLICATE MESSAGE | |
CREATED A MESSAGE 60920fb20b5e50c1e0a0e3ed | |
SEND MESSAGE 2021-05-05T03:23:29.975Z 60920fb272b17fc1d2ea65b6 | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
DUPLICATE MESSAGE | |
CREATED A MESSAGE 60920fb2db0890c1d1569ee6 | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
DUPLICATE MESSAGE | |
DUPLICATE MESSAGE | |
DUPLICATE MESSAGE | |
SEND MESSAGE 2021-05-05T03:23:30.034Z 60920fb20b5e50c1e0a0e3ed | |
DUPLICATE MESSAGE | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
SEND MESSAGE 2021-05-05T03:23:30.070Z 60920fb2db0890c1d1569ee6 | |
DUPLICATE MESSAGE | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked | |
Existing, message is either sent, disabled, or is locked |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "SO_67375281", | |
"version": "1.0.0", | |
"description": "", | |
"main": "index.js", | |
"scripts": { | |
"test": "echo \"Error: no test specified\" && exit 1" | |
}, | |
"author": "", | |
"license": "ISC", | |
"dependencies": { | |
"moment": "^2.29.1", | |
"mongoose": "^5.12.7", | |
"throng": "^5.0.0" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment