public async Task <IWaitResults> Publish(object message, IMessageMetadata metadata = null) { var task = _waiter.Start(); _publisher.Publish(message, metadata ?? MessageMetadata.Empty()); return(await task); }
public void Publish(object msg) { _log.Trace("Publishing {@Message} to transport", msg); _bus.Publish(msg); //for backward compability - a lot of legacy code publish bare messages and expect some results back //and new actors \ sagas work only with IMessageMetadataEnvelop Publish(msg, MessageMetadata.Empty()); }
private IMessageMetadata SafeGetMetadata(JobDataMap jobDataMap) { var bytes = jobDataMap[MetadataKey] as byte[]; try { return(Deserialize <IMessageMetadata>(bytes, _serializer)); } catch (Exception ex) { return(MessageMetadata.Empty()); } }
protected override void OnReceive(object message) { try { var messageWithMetadata = message as IMessageMetadataEnvelop; if (messageWithMetadata != null) { _group.Project(messageWithMetadata.Message, messageWithMetadata.Metadata); } else { _group.Project(message, MessageMetadata.Empty()); } } catch (MessageProcessException ex) { _log.Error(ex, "Handler actor raised an error on message process: {@Message}", message); var withMetadata = message as IMessageMetadataEnvelop; if (withMetadata == null) { var fault = Fault.NewGeneric(message, ex.InnerException, ex.Type, GetSagaId(message)); _publisher.Publish(fault); } else { var fault = Fault.NewGeneric(withMetadata.Message, ex.InnerException, ex.Type, GetSagaId(message)); var metadata = withMetadata.Metadata.CreateChild(Guid.Empty, new ProcessEntry(Self.Path.Name, "publishing fault", "message process casued an error")); _publisher.Publish(fault, metadata); } } }
public void Handle(SampleAggregateCreatedEvent msg) { Handle(msg, MessageMetadata.Empty()); }
public virtual void Handle(TMessage msg) { Handle(new MessageMetadataEnvelop <TMessage>(msg, MessageMetadata.Empty())); }