var getWorkTime = function (minTime, maxTime) { // Ensure the minTime number is always a number or set to a default one: if (_.isFinite(minTime)) { minTime = _.parseInt(minTime); } else { minTime = MIN_TIME; } var currentTime = _.parseInt(mainrand(maxTime)); if (currentTime < minTime) { logger.debug('getWorkTime :: Min Time Hit - Adding MIN_TIME (' + minTime + ') to value ('+ currentTime +').'); currentTime += parseInt(minTime); } logger.debug('getWorkTime :: Time Pick: ' + currentTime); return currentTime; }
var generateTasking = function(workObj, commandStr) { var msgStr = null; logger.debug('generateTasking :: workObj: '+util.inspect(workObj)); var choosenCommand = _.indexOf(COMMANDS_AVAILABLE,commandStr); if (choosenCommand == -1) { logger.warn('Invalid Command Specified: '+commandStr+' :: This shouldn\'t happen...'); return msgStr; } // Get String Version JSON String: var workObjJSONStr = JSON.stringify(workObj); logger.debug('generateTasking :: workObjJSONStr: '+workObjJSONStr); // Generate Task ID: var taskIDObj = generateTaskID(workObjJSONStr); logger.debug('generateTasking :: taskIDObj:\n'+util.inspect(taskIDObj)); // Get Work Time: var curMinTime = cdxgc_gen_args.minTime; if (!_.isUndefined(workObj.minTime)) { curMinTime = workObj.minTime; } // Ensure the curMinTime number is always a number or set to a default one: if (_.isFinite(curMinTime)) { curMinTime = _.parseInt(curMinTime); } else { curMinTime = cdxgc_gen_args.minTime; } logger.debug('generateTasking :: curMinTime: '+util.inspect(curMinTime)); var workTime = getWorkTime(curMinTime, cdxgc_gen_args.maxTime); // For Pause Commands... if (!_.isUndefined(workObj.pauseTimeMS)) { workTime = workObj.pauseTimeMS; } logger.debug('generateTasking :: workTime: '+util.inspect(workTime)); // Build the message: var msg_to_send = {}; msg_to_send.srcSystem = SOURCE_SYSTEM_NAME; //Source System Generator msg_to_send.poc = SOURCE_SYSTEM_NAME; //POC == Source System Generator if (!_.isUndefined(workObj.poc)) { msg_to_send.poc = workObj.poc; } // Use Tasking Type: msg_to_send.taskType = 'generated'; if (!_.isUndefined(workObj.taskType)) { msg_to_send.taskType = workObj.taskType; } msg_to_send.url = ''; if (workObj.url) msg_to_send.url = workObj.url; //URL Itself msg_to_send.cmd = COMMANDS_AVAILABLE[choosenCommand]; //Choosen Command msg_to_send.taskCreateDate = taskIDObj.curDate; //Task Creation Date/Time msg_to_send.taskCreateMS = taskIDObj.curDateMS; //Task Creation Date/Time in Milliseconds. msg_to_send.taskID = taskIDObj.taskID; //Task ID msg_to_send.minWorkTime = curMinTime; //Min Work Time in MS msg_to_send.workTime = workTime; //How long to sit and wait on page == work time. logger.debug('generateTasking :: msg_to_send:\n'+util.inspect(msg_to_send)); return msg_to_send; };