private bool Execute(DeleteMessagesFailure command) { Log.Error(command.Cause, "Job of Name={0} at SequenceNr={1}; Failed to delete scheduler messages to SequenceNr={2}.", Name, LastSequenceNr, command.ToSequenceNr); return(true); }
protected override async Task HandleDeleteMessagesTo(DeleteMessagesTo req, OracleCommand command) { var toSequenceNr = req.ToSequenceNr; var persistenceId = req.PersistenceId; NotifyNewPersistenceIdAdded(persistenceId); try { var highestSequenceNr = await ReadHighestSequenceNr(persistenceId, command); command.CommandText = DeleteBatchSql; command.Parameters.Clear(); AddParameter(command, ":PersistenceId", OracleDbType.NVarchar2, persistenceId); AddParameter(command, ":ToSequenceNr", OracleDbType.Int64, toSequenceNr); await command.ExecuteNonQueryAsync(); if (highestSequenceNr <= toSequenceNr) { command.CommandText = UpdateSequenceNrSql; command.Parameters.Clear(); AddParameter(command, ":PersistenceId", OracleDbType.NVarchar2, persistenceId); AddParameter(command, ":SequenceNr", OracleDbType.Int64, highestSequenceNr); await command.ExecuteNonQueryAsync(); } var response = new DeleteMessagesSuccess(toSequenceNr); req.PersistentActor.Tell(response); } catch (Exception cause) { var response = new DeleteMessagesFailure(cause, toSequenceNr); req.PersistentActor.Tell(response, ActorRefs.NoSender); } }