summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/api/wakerequests.js16
-rw-r--r--server/bin/scheduler.js17
2 files changed, 26 insertions, 7 deletions
diff --git a/server/api/wakerequests.js b/server/api/wakerequests.js
index 37670d4..f619bd9 100644
--- a/server/api/wakerequests.js
+++ b/server/api/wakerequests.js
@@ -8,9 +8,19 @@ var router = decorateApp(express.Router())
router.postAsync('', async (req, res) => {
const clients = await db.client.findAll({ where: { id: req.body.clients } })
- clients.forEach(client => {
- wol.wake(client.mac, { address: client.ip.slice(0, client.ip.lastIndexOf('.') + 1) + '255' }, err => { if (err) console.log(err) })
- })
+
+ let i = 0
+ const loop = () => {
+ setTimeout(() => {
+ let client = clients[i]
+ console.log('Waking up: ' + client.name + ' (' + client.mac + ')')
+ wol.wake(client.mac, { address: client.ip.slice(0, client.ip.lastIndexOf('.') + 1) + '255' }, err => { if (err) console.log(err) })
+ i++
+ if (i < clients.length) loop()
+ }, 10)
+ }
+ loop()
+
res.status(200).end()
})
diff --git a/server/bin/scheduler.js b/server/bin/scheduler.js
index 8bd8d80..26774d6 100644
--- a/server/bin/scheduler.js
+++ b/server/bin/scheduler.js
@@ -72,9 +72,18 @@ async function wakeUpClients (id) {
}
var childs = await groupHelper.getAllChildren(groups, blacklistGroups, blacklistClients)
clients = clients.concat(childs.clients)
-
+ console.log(clients.length)
// 2. Wake all clients
- clients.forEach(client => {
- wol.wake(client.mac, { address: client.ip.slice(0, client.ip.lastIndexOf('.') + 1) + '255' }, err => { if (err) console.log(err) })
- })
+
+ let i = 0
+ const loop = () => {
+ setTimeout(() => {
+ let client = clients[i]
+ console.log('Waking up: ' + client.name + ' (' + client.mac + ')')
+ wol.wake(client.mac, { address: client.ip.slice(0, client.ip.lastIndexOf('.') + 1) + '255' }, err => { if (err) console.log(err) })
+ i++
+ if (i < clients.length) loop()
+ }, 10)
+ }
+ loop()
}