private static void Scheduler_OnIntentDueCallback(IntentJob intentJob) { if (intentJob.RequiresIteration) { try { var compilerResults = Intent.IntentCompiler.CompileCSharpString(File.ReadAllText(intentJob.FileName)); var tempType = compilerResults.CompiledAssembly.GetType("ShiftPolicy"); List <Topology.Node.Node> iterateNodes = (List <Topology.Node.Node>)tempType.GetMethod("IterateNodes").Invoke(null, new object[] { igp_topology }); foreach (var node in iterateNodes) { var iJob = new IntentJob( fileName: intentJob.FileName, intentCode: IntentJob.Base64Decode(intentJob.Base64IntentCode), period: intentJob.Period, validBefore: intentJob.ValidBefore, requiresIteration: intentJob.RequiresIteration, iterateNode: node ); IntentQueueProducer.Publish(JsonConvert.SerializeObject(iJob)); IntentJobTasksCount.Inc(); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } else { IntentQueueProducer.Publish(JsonConvert.SerializeObject(intentJob)); IntentJobTasksCount.Inc(); } }