func (p UpdateExportProcessor) Process() { printDebug("UPDATEEXPORT", p.UpdateExportMsg) Export := types.GetExportById(p.UpdateExportMsg.ExportId, p.GetAgent()) Export.UpdateTags(p.UpdateExportMsg.Tags) var pjp PendingJobProcessor pjp.Appkey = Export.GetAppKey() pjp.GenericProcessor = processor.GetGenericProcessor() p.SpawnProcess(pjp) var uesp ExportedStateProcessor uesp.AppKey = Export.GetAppKey() uesp.GenericProcessor = processor.GetGenericProcessor() p.SpawnProcess(uesp) if !Export.GetApp().IsNode() { for _, node := range types.GetNodes(p.GetAgent()) { node.Lock() var smp SendMessageProcessor smp.App = node smp.Msg = p.UpdateExportMsg smp.GenericProcessor = processor.GetGenericProcessor() p.SpawnProcess(smp) node.Unlock() } } }
func (p ResultProcessor) Process() { printDebug("Processing result") job := types.GetJobFromResult(p.Result, p.GetAgent()) switch p.Result.CallType { case calltypes.ONE2ONE: if job.Exists() { imp := job.GetImport() var smp SendMessageProcessor smp.App = imp.GetApp() smp.Msg = p.Result smp.GenericProcessor = processor.GetGenericProcessor() p.SpawnProcess(smp) job.Remove() } case calltypes.ONE2MANY: if job.Exists() { imp := job.GetImport() var smp SendMessageProcessor printDebug("SENDING ONE2MANY RES", imp.GetApp()) smp.App = imp.GetApp() smp.Msg = p.Result smp.GenericProcessor = processor.GetGenericProcessor() p.SpawnProcess(smp) } case calltypes.MANY2MANY, calltypes.MANY2ONE: exp := types.GetExportById(p.Result.ExportId, p.GetAgent()) for _, imp := range exp.GetAppKey().GetListener(p.Result.FunctionName, exp) { printDebug("Sending to", imp.GetId()) var smp SendMessageProcessor smp.App = imp.GetApp() res := p.Result res.ImportId = imp.GetId() smp.Msg = res smp.GenericProcessor = processor.GetGenericProcessor() p.SpawnProcess(smp) job.Remove() } } }