private bool Execute(DeleteMessagesSuccess command)
        {
            Log.Debug("Job of Name={0} at SequenceNr={1}; deleted 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);
            }
        }
Exemplo n.º 3
0
 private void MessageDeleteSuccess(DeleteMessagesSuccess msg)
 {
     Monitor();
     _log.Debug($"Successfully cleared log after snapshot ({msg.ToString()})");
 }