diff --git a/lib/runtime/make.js b/lib/runtime/make.js index 5a5903e..d4cfd5e 100644 --- a/lib/runtime/make.js +++ b/lib/runtime/make.js @@ -13,7 +13,8 @@ var common = require('@screeps/common'), pathfinderFactory = require('../path-finder'), index = require('../index'), runtimeData = require('./data'), - runtimeUserVm = require('./user-vm'); + runtimeUserVm = require('./user-vm'), + os = require('os'); let staticTerrainData, staticTerrainDataSize = 0; @@ -211,6 +212,7 @@ async function make (scope, userId) { $set.cpuAvailable = newCpuAvailable; } + Object.assign(userData.user, $set); db.users.update({_id: userData.user._id}, {$set}); if (runResult.activeForeignSegment !== undefined) { @@ -259,15 +261,20 @@ async function make (scope, userId) { } } + const shardName = await env.get(env.keys.SHARD_NAME) ?? os.hostname(); if (/CPU limit reached/.test(runResult.error)) { pubsub.publish(`user:${userData.user._id}/cpu`, JSON.stringify({ + shard: shardName, cpu: 'error', + bucket: userData.user.cpuAvailable, memory: runResult.memory.data.length })); } else { pubsub.publish(`user:${userData.user._id}/cpu`, JSON.stringify({ + shard: shardName, cpu: runResult.usedTime, + bucket: userData.user.cpuAvailable, memory: runResult.memory.data.length })); }