@@ -40,8 +40,7 @@ namespace DotNetCore.CAP.InMemoryStorage | |||||
return Task.CompletedTask; | return Task.CompletedTask; | ||||
} | } | ||||
public Task<MediumMessage> StoreMessageAsync(string name, Message content, object dbTransaction = null, | |||||
CancellationToken cancellationToken = default) | |||||
public MediumMessage StoreMessage(string name, Message content, object dbTransaction = null) | |||||
{ | { | ||||
var message = new MediumMessage | var message = new MediumMessage | ||||
{ | { | ||||
@@ -64,10 +63,10 @@ namespace DotNetCore.CAP.InMemoryStorage | |||||
StatusName = StatusName.Scheduled | StatusName = StatusName.Scheduled | ||||
}); | }); | ||||
return Task.FromResult(message); | |||||
return message; | |||||
} | } | ||||
public Task StoreReceivedExceptionMessageAsync(string name, string group, string content) | |||||
public void StoreReceivedExceptionMessage(string name, string group, string content) | |||||
{ | { | ||||
ReceivedMessages.Add(new MemoryMessage | ReceivedMessages.Add(new MemoryMessage | ||||
{ | { | ||||
@@ -80,11 +79,9 @@ namespace DotNetCore.CAP.InMemoryStorage | |||||
ExpiresAt = DateTime.Now.AddDays(15), | ExpiresAt = DateTime.Now.AddDays(15), | ||||
StatusName = StatusName.Failed | StatusName = StatusName.Failed | ||||
}); | }); | ||||
return Task.CompletedTask; | |||||
} | } | ||||
public Task<MediumMessage> StoreReceivedMessageAsync(string name, string @group, Message message) | |||||
public MediumMessage StoreReceivedMessage(string name, string @group, Message message) | |||||
{ | { | ||||
var mdMessage = new MediumMessage | var mdMessage = new MediumMessage | ||||
{ | { | ||||
@@ -107,7 +104,7 @@ namespace DotNetCore.CAP.InMemoryStorage | |||||
StatusName = StatusName.Failed | StatusName = StatusName.Failed | ||||
}); | }); | ||||
return Task.FromResult(mdMessage); | |||||
return mdMessage; | |||||
} | } | ||||
public Task<int> DeleteExpiresAsync(string table, DateTime timeout, int batchCount = 1000, CancellationToken token = default) | public Task<int> DeleteExpiresAsync(string table, DateTime timeout, int batchCount = 1000, CancellationToken token = default) | ||||
@@ -22,7 +22,6 @@ namespace DotNetCore.CAP.MongoDB | |||||
private readonly IOptions<CapOptions> _capOptions; | private readonly IOptions<CapOptions> _capOptions; | ||||
private readonly IMongoClient _client; | private readonly IMongoClient _client; | ||||
private readonly IMongoDatabase _database; | private readonly IMongoDatabase _database; | ||||
private readonly ILogger<MongoDBDataStorage> _logger; | |||||
private readonly IOptions<MongoDBOptions> _options; | private readonly IOptions<MongoDBOptions> _options; | ||||
public MongoDBDataStorage( | public MongoDBDataStorage( | ||||
@@ -34,7 +33,6 @@ namespace DotNetCore.CAP.MongoDB | |||||
_capOptions = capOptions; | _capOptions = capOptions; | ||||
_options = options; | _options = options; | ||||
_client = client; | _client = client; | ||||
_logger = logger; | |||||
_database = _client.GetDatabase(_options.Value.DatabaseName); | _database = _client.GetDatabase(_options.Value.DatabaseName); | ||||
} | } | ||||
@@ -62,10 +60,9 @@ namespace DotNetCore.CAP.MongoDB | |||||
await collection.UpdateOneAsync(x => x.Id == long.Parse(message.DbId), updateDef); | await collection.UpdateOneAsync(x => x.Id == long.Parse(message.DbId), updateDef); | ||||
} | } | ||||
public async Task<MediumMessage> StoreMessageAsync(string name, Message content, object dbTransaction = null, | |||||
CancellationToken cancellationToken = default) | |||||
public MediumMessage StoreMessage(string name, Message content, object dbTransaction = null) | |||||
{ | { | ||||
var insertOptions = new InsertOneOptions {BypassDocumentValidation = false}; | |||||
var insertOptions = new InsertOneOptions { BypassDocumentValidation = false }; | |||||
var message = new MediumMessage | var message = new MediumMessage | ||||
{ | { | ||||
@@ -93,18 +90,18 @@ namespace DotNetCore.CAP.MongoDB | |||||
if (dbTransaction == null) | if (dbTransaction == null) | ||||
{ | { | ||||
await collection.InsertOneAsync(store, insertOptions, cancellationToken); | |||||
collection.InsertOne(store, insertOptions); | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
var dbTrans = dbTransaction as IClientSessionHandle; | var dbTrans = dbTransaction as IClientSessionHandle; | ||||
await collection.InsertOneAsync(dbTrans, store, insertOptions, cancellationToken); | |||||
collection.InsertOne(dbTrans, store, insertOptions); | |||||
} | } | ||||
return message; | return message; | ||||
} | } | ||||
public async Task StoreReceivedExceptionMessageAsync(string name, string group, string content) | |||||
public void StoreReceivedExceptionMessage(string name, string group, string content) | |||||
{ | { | ||||
var collection = _database.GetCollection<ReceivedMessage>(_options.Value.ReceivedCollection); | var collection = _database.GetCollection<ReceivedMessage>(_options.Value.ReceivedCollection); | ||||
@@ -121,10 +118,10 @@ namespace DotNetCore.CAP.MongoDB | |||||
StatusName = nameof(StatusName.Failed) | StatusName = nameof(StatusName.Failed) | ||||
}; | }; | ||||
await collection.InsertOneAsync(store); | |||||
collection.InsertOne(store); | |||||
} | } | ||||
public async Task<MediumMessage> StoreReceivedMessageAsync(string name, string group, Message message) | |||||
public MediumMessage StoreReceivedMessage(string name, string group, Message message) | |||||
{ | { | ||||
var mdMessage = new MediumMessage | var mdMessage = new MediumMessage | ||||
{ | { | ||||
@@ -151,7 +148,7 @@ namespace DotNetCore.CAP.MongoDB | |||||
StatusName = nameof(StatusName.Scheduled) | StatusName = nameof(StatusName.Scheduled) | ||||
}; | }; | ||||
await collection.InsertOneAsync(store); | |||||
collection.InsertOne(store); | |||||
return mdMessage; | return mdMessage; | ||||
} | } | ||||
@@ -161,18 +158,15 @@ namespace DotNetCore.CAP.MongoDB | |||||
{ | { | ||||
if (collection == _options.Value.PublishedCollection) | if (collection == _options.Value.PublishedCollection) | ||||
{ | { | ||||
//Builders<PublishedMessage>.Filter.Lt(x => x.ExpiresAt, timeout); | |||||
var publishedCollection = _database.GetCollection<PublishedMessage>(_options.Value.PublishedCollection); | var publishedCollection = _database.GetCollection<PublishedMessage>(_options.Value.PublishedCollection); | ||||
var ret = await publishedCollection.DeleteManyAsync(x => x.ExpiresAt < timeout, cancellationToken); | var ret = await publishedCollection.DeleteManyAsync(x => x.ExpiresAt < timeout, cancellationToken); | ||||
return (int) ret.DeletedCount; | |||||
return (int)ret.DeletedCount; | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
var receivedCollection = _database.GetCollection<ReceivedMessage>(_options.Value.ReceivedCollection); | var receivedCollection = _database.GetCollection<ReceivedMessage>(_options.Value.ReceivedCollection); | ||||
var ret = await receivedCollection.DeleteManyAsync(x => x.ExpiresAt < timeout, cancellationToken); | var ret = await receivedCollection.DeleteManyAsync(x => x.ExpiresAt < timeout, cancellationToken); | ||||
; | |||||
return (int) ret.DeletedCount; | |||||
return (int)ret.DeletedCount; | |||||
} | } | ||||
} | } | ||||
@@ -64,7 +64,7 @@ namespace DotNetCore.CAP.MySql | |||||
}); | }); | ||||
} | } | ||||
public async Task<MediumMessage> StoreMessageAsync(string name, Message content, object dbTransaction = null, CancellationToken cancellationToken = default) | |||||
public MediumMessage StoreMessage(string name, Message content, object dbTransaction = null) | |||||
{ | { | ||||
var sql = $"INSERT INTO `{_initializer.GetPublishedTableName()}`(`Id`,`Version`,`Name`,`Content`,`Retries`,`Added`,`ExpiresAt`,`StatusName`) VALUES(@Id,'{_options.Value.Version}',@Name,@Content,@Retries,@Added,@ExpiresAt,@StatusName);"; | var sql = $"INSERT INTO `{_initializer.GetPublishedTableName()}`(`Id`,`Version`,`Name`,`Content`,`Retries`,`Added`,`ExpiresAt`,`StatusName`) VALUES(@Id,'{_options.Value.Version}',@Name,@Content,@Retries,@Added,@ExpiresAt,@StatusName);"; | ||||
@@ -91,8 +91,8 @@ namespace DotNetCore.CAP.MySql | |||||
if (dbTransaction == null) | if (dbTransaction == null) | ||||
{ | { | ||||
await using var connection = new MySqlConnection(_options.Value.ConnectionString); | |||||
await connection.ExecuteAsync(sql, po); | |||||
using var connection = new MySqlConnection(_options.Value.ConnectionString); | |||||
connection.Execute(sql, po); | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
@@ -103,18 +103,18 @@ namespace DotNetCore.CAP.MySql | |||||
} | } | ||||
var conn = dbTrans?.Connection; | var conn = dbTrans?.Connection; | ||||
await conn.ExecuteAsync(sql, po, dbTrans); | |||||
conn.Execute(sql, po, dbTrans); | |||||
} | } | ||||
return message; | return message; | ||||
} | } | ||||
public async Task StoreReceivedExceptionMessageAsync(string name, string group, string content) | |||||
public void StoreReceivedExceptionMessage(string name, string group, string content) | |||||
{ | { | ||||
var sql = $@"INSERT INTO `{_initializer.GetReceivedTableName()}`(`Id`,`Version`,`Name`,`Group`,`Content`,`Retries`,`Added`,`ExpiresAt`,`StatusName`) VALUES(@Id,'{_options.Value.Version}',@Name,@Group,@Content,@Retries,@Added,@ExpiresAt,@StatusName);"; | var sql = $@"INSERT INTO `{_initializer.GetReceivedTableName()}`(`Id`,`Version`,`Name`,`Group`,`Content`,`Retries`,`Added`,`ExpiresAt`,`StatusName`) VALUES(@Id,'{_options.Value.Version}',@Name,@Group,@Content,@Retries,@Added,@ExpiresAt,@StatusName);"; | ||||
await using var connection = new MySqlConnection(_options.Value.ConnectionString); | |||||
await connection.ExecuteAsync(sql, new | |||||
using var connection = new MySqlConnection(_options.Value.ConnectionString); | |||||
connection.Execute(sql, new | |||||
{ | { | ||||
Id = SnowflakeId.Default().NextId().ToString(), | Id = SnowflakeId.Default().NextId().ToString(), | ||||
Group = @group, | Group = @group, | ||||
@@ -127,7 +127,7 @@ namespace DotNetCore.CAP.MySql | |||||
}); | }); | ||||
} | } | ||||
public async Task<MediumMessage> StoreReceivedMessageAsync(string name, string group, Message message) | |||||
public MediumMessage StoreReceivedMessage(string name, string group, Message message) | |||||
{ | { | ||||
var sql = $@"INSERT INTO `{_initializer.GetReceivedTableName()}`(`Id`,`Version`,`Name`,`Group`,`Content`,`Retries`,`Added`,`ExpiresAt`,`StatusName`) VALUES(@Id,'{_options.Value.Version}',@Name,@Group,@Content,@Retries,@Added,@ExpiresAt,@StatusName);"; | var sql = $@"INSERT INTO `{_initializer.GetReceivedTableName()}`(`Id`,`Version`,`Name`,`Group`,`Content`,`Retries`,`Added`,`ExpiresAt`,`StatusName`) VALUES(@Id,'{_options.Value.Version}',@Name,@Group,@Content,@Retries,@Added,@ExpiresAt,@StatusName);"; | ||||
@@ -140,8 +140,8 @@ namespace DotNetCore.CAP.MySql | |||||
Retries = 0 | Retries = 0 | ||||
}; | }; | ||||
var content = StringSerializer.Serialize(mdMessage.Origin); | var content = StringSerializer.Serialize(mdMessage.Origin); | ||||
await using var connection = new MySqlConnection(_options.Value.ConnectionString); | |||||
await connection.ExecuteAsync(sql, new | |||||
using var connection = new MySqlConnection(_options.Value.ConnectionString); | |||||
connection.Execute(sql, new | |||||
{ | { | ||||
Id = mdMessage.DbId, | Id = mdMessage.DbId, | ||||
Group = @group, | Group = @group, | ||||
@@ -66,8 +66,7 @@ namespace DotNetCore.CAP.PostgreSql | |||||
}); | }); | ||||
} | } | ||||
public async Task<MediumMessage> StoreMessageAsync(string name, Message content, object dbTransaction = null, | |||||
CancellationToken cancellationToken = default) | |||||
public MediumMessage StoreMessage(string name, Message content, object dbTransaction = null) | |||||
{ | { | ||||
var sql = | var sql = | ||||
$"INSERT INTO {_pubName} (\"Id\",\"Version\",\"Name\",\"Content\",\"Retries\",\"Added\",\"ExpiresAt\",\"StatusName\")" + | $"INSERT INTO {_pubName} (\"Id\",\"Version\",\"Name\",\"Content\",\"Retries\",\"Added\",\"ExpiresAt\",\"StatusName\")" + | ||||
@@ -96,8 +95,8 @@ namespace DotNetCore.CAP.PostgreSql | |||||
if (dbTransaction == null) | if (dbTransaction == null) | ||||
{ | { | ||||
await using var connection = new NpgsqlConnection(_options.Value.ConnectionString); | |||||
await connection.ExecuteAsync(sql, po); | |||||
using var connection = new NpgsqlConnection(_options.Value.ConnectionString); | |||||
connection.Execute(sql, po); | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
@@ -106,20 +105,20 @@ namespace DotNetCore.CAP.PostgreSql | |||||
dbTrans = dbContextTrans.GetDbTransaction(); | dbTrans = dbContextTrans.GetDbTransaction(); | ||||
var conn = dbTrans?.Connection; | var conn = dbTrans?.Connection; | ||||
await conn.ExecuteAsync(sql, po, dbTrans); | |||||
conn.Execute(sql, po, dbTrans); | |||||
} | } | ||||
return message; | return message; | ||||
} | } | ||||
public async Task StoreReceivedExceptionMessageAsync(string name, string group, string content) | |||||
public void StoreReceivedExceptionMessage(string name, string group, string content) | |||||
{ | { | ||||
var sql = | var sql = | ||||
$"INSERT INTO {_recName}(\"Id\",\"Version\",\"Name\",\"Group\",\"Content\",\"Retries\",\"Added\",\"ExpiresAt\",\"StatusName\")" + | $"INSERT INTO {_recName}(\"Id\",\"Version\",\"Name\",\"Group\",\"Content\",\"Retries\",\"Added\",\"ExpiresAt\",\"StatusName\")" + | ||||
$"VALUES(@Id,'{_capOptions.Value.Version}',@Name,@Group,@Content,@Retries,@Added,@ExpiresAt,@StatusName) RETURNING \"Id\";"; | $"VALUES(@Id,'{_capOptions.Value.Version}',@Name,@Group,@Content,@Retries,@Added,@ExpiresAt,@StatusName) RETURNING \"Id\";"; | ||||
await using var connection = new NpgsqlConnection(_options.Value.ConnectionString); | |||||
await connection.ExecuteAsync(sql, new | |||||
using var connection = new NpgsqlConnection(_options.Value.ConnectionString); | |||||
connection.Execute(sql, new | |||||
{ | { | ||||
Id = SnowflakeId.Default().NextId(), | Id = SnowflakeId.Default().NextId(), | ||||
Group = group, | Group = group, | ||||
@@ -132,7 +131,7 @@ namespace DotNetCore.CAP.PostgreSql | |||||
}); | }); | ||||
} | } | ||||
public async Task<MediumMessage> StoreReceivedMessageAsync(string name, string group, Message message) | |||||
public MediumMessage StoreReceivedMessage(string name, string group, Message message) | |||||
{ | { | ||||
var sql = | var sql = | ||||
$"INSERT INTO {_recName}(\"Id\",\"Version\",\"Name\",\"Group\",\"Content\",\"Retries\",\"Added\",\"ExpiresAt\",\"StatusName\")" + | $"INSERT INTO {_recName}(\"Id\",\"Version\",\"Name\",\"Group\",\"Content\",\"Retries\",\"Added\",\"ExpiresAt\",\"StatusName\")" + | ||||
@@ -147,8 +146,8 @@ namespace DotNetCore.CAP.PostgreSql | |||||
Retries = 0 | Retries = 0 | ||||
}; | }; | ||||
var content = StringSerializer.Serialize(mdMessage.Origin); | var content = StringSerializer.Serialize(mdMessage.Origin); | ||||
await using var connection = new NpgsqlConnection(_options.Value.ConnectionString); | |||||
await connection.ExecuteAsync(sql, new | |||||
using var connection = new NpgsqlConnection(_options.Value.ConnectionString); | |||||
connection.Execute(sql, new | |||||
{ | { | ||||
Id = long.Parse(mdMessage.DbId), | Id = long.Parse(mdMessage.DbId), | ||||
Group = group, | Group = group, | ||||
@@ -66,8 +66,7 @@ namespace DotNetCore.CAP.SqlServer | |||||
}); | }); | ||||
} | } | ||||
public async Task<MediumMessage> StoreMessageAsync(string name, Message content, object dbTransaction = null, | |||||
CancellationToken cancellationToken = default) | |||||
public MediumMessage StoreMessage(string name, Message content, object dbTransaction = null) | |||||
{ | { | ||||
var sql = $"INSERT INTO {_pubName} ([Id],[Version],[Name],[Content],[Retries],[Added],[ExpiresAt],[StatusName])" + | var sql = $"INSERT INTO {_pubName} ([Id],[Version],[Name],[Content],[Retries],[Added],[ExpiresAt],[StatusName])" + | ||||
$"VALUES(@Id,'{_options.Value.Version}',@Name,@Content,@Retries,@Added,@ExpiresAt,@StatusName);"; | $"VALUES(@Id,'{_options.Value.Version}',@Name,@Content,@Retries,@Added,@ExpiresAt,@StatusName);"; | ||||
@@ -95,8 +94,8 @@ namespace DotNetCore.CAP.SqlServer | |||||
if (dbTransaction == null) | if (dbTransaction == null) | ||||
{ | { | ||||
await using var connection = new SqlConnection(_options.Value.ConnectionString); | |||||
await connection.ExecuteAsync(sql, po); | |||||
using var connection = new SqlConnection(_options.Value.ConnectionString); | |||||
connection.Execute(sql, po); | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
@@ -105,20 +104,20 @@ namespace DotNetCore.CAP.SqlServer | |||||
dbTrans = dbContextTrans.GetDbTransaction(); | dbTrans = dbContextTrans.GetDbTransaction(); | ||||
var conn = dbTrans?.Connection; | var conn = dbTrans?.Connection; | ||||
await conn.ExecuteAsync(sql, po, dbTrans); | |||||
conn.Execute(sql, po, dbTrans); | |||||
} | } | ||||
return message; | return message; | ||||
} | } | ||||
public async Task StoreReceivedExceptionMessageAsync(string name, string group, string content) | |||||
public void StoreReceivedExceptionMessage(string name, string group, string content) | |||||
{ | { | ||||
var sql = | var sql = | ||||
$"INSERT INTO {_recName}([Id],[Version],[Name],[Group],[Content],[Retries],[Added],[ExpiresAt],[StatusName])" + | $"INSERT INTO {_recName}([Id],[Version],[Name],[Group],[Content],[Retries],[Added],[ExpiresAt],[StatusName])" + | ||||
$"VALUES(@Id,'{_capOptions.Value.Version}',@Name,@Group,@Content,@Retries,@Added,@ExpiresAt,@StatusName);"; | $"VALUES(@Id,'{_capOptions.Value.Version}',@Name,@Group,@Content,@Retries,@Added,@ExpiresAt,@StatusName);"; | ||||
await using var connection = new SqlConnection(_options.Value.ConnectionString); | |||||
await connection.ExecuteAsync(sql, new | |||||
using var connection = new SqlConnection(_options.Value.ConnectionString); | |||||
connection.Execute(sql, new | |||||
{ | { | ||||
Id = SnowflakeId.Default().NextId().ToString(), | Id = SnowflakeId.Default().NextId().ToString(), | ||||
Group = group, | Group = group, | ||||
@@ -131,7 +130,7 @@ namespace DotNetCore.CAP.SqlServer | |||||
}); | }); | ||||
} | } | ||||
public async Task<MediumMessage> StoreReceivedMessageAsync(string name, string group, Message message) | |||||
public MediumMessage StoreReceivedMessage(string name, string group, Message message) | |||||
{ | { | ||||
var sql = | var sql = | ||||
$"INSERT INTO {_recName}([Id],[Version],[Name],[Group],[Content],[Retries],[Added],[ExpiresAt],[StatusName])" + | $"INSERT INTO {_recName}([Id],[Version],[Name],[Group],[Content],[Retries],[Added],[ExpiresAt],[StatusName])" + | ||||
@@ -146,8 +145,8 @@ namespace DotNetCore.CAP.SqlServer | |||||
Retries = 0 | Retries = 0 | ||||
}; | }; | ||||
var content = StringSerializer.Serialize(mdMessage.Origin); | var content = StringSerializer.Serialize(mdMessage.Origin); | ||||
await using var connection = new SqlConnection(_options.Value.ConnectionString); | |||||
await connection.ExecuteAsync(sql, new | |||||
using var connection = new SqlConnection(_options.Value.ConnectionString); | |||||
connection.Execute(sql, new | |||||
{ | { | ||||
Id = mdMessage.DbId, | Id = mdMessage.DbId, | ||||
Group = group, | Group = group, | ||||
@@ -35,7 +35,28 @@ namespace DotNetCore.CAP.Internal | |||||
public AsyncLocal<ICapTransaction> Transaction { get; } | public AsyncLocal<ICapTransaction> Transaction { get; } | ||||
public async Task PublishAsync<T>(string name, T value, IDictionary<string, string> headers, CancellationToken cancellationToken = default) | |||||
public Task PublishAsync<T>(string name, T value, IDictionary<string, string> headers, CancellationToken cancellationToken = default) | |||||
{ | |||||
return Task.Run(() => Publish(name, value, headers), cancellationToken); | |||||
} | |||||
public Task PublishAsync<T>(string name, T value, string callbackName = null, | |||||
CancellationToken cancellationToken = default) | |||||
{ | |||||
return Task.Run(() => Publish(name, value, callbackName), cancellationToken); | |||||
} | |||||
public void Publish<T>(string name, T value, string callbackName = null) | |||||
{ | |||||
var header = new Dictionary<string, string> | |||||
{ | |||||
{Headers.CallbackName, callbackName} | |||||
}; | |||||
Publish(name, value, header); | |||||
} | |||||
public void Publish<T>(string name, T value, IDictionary<string, string> headers) | |||||
{ | { | ||||
if (string.IsNullOrEmpty(name)) | if (string.IsNullOrEmpty(name)) | ||||
{ | { | ||||
@@ -67,7 +88,7 @@ namespace DotNetCore.CAP.Internal | |||||
if (Transaction.Value?.DbTransaction == null) | if (Transaction.Value?.DbTransaction == null) | ||||
{ | { | ||||
var mediumMessage = await _storage.StoreMessageAsync(name, message, cancellationToken: cancellationToken); | |||||
var mediumMessage = _storage.StoreMessage(name, message); | |||||
TracingAfter(tracingTimestamp, message); | TracingAfter(tracingTimestamp, message); | ||||
@@ -77,7 +98,7 @@ namespace DotNetCore.CAP.Internal | |||||
{ | { | ||||
var transaction = (CapTransactionBase)Transaction.Value; | var transaction = (CapTransactionBase)Transaction.Value; | ||||
var mediumMessage = await _storage.StoreMessageAsync(name, message, transaction.DbTransaction, cancellationToken); | |||||
var mediumMessage = _storage.StoreMessage(name, message, transaction.DbTransaction); | |||||
TracingAfter(tracingTimestamp, message); | TracingAfter(tracingTimestamp, message); | ||||
@@ -97,27 +118,6 @@ namespace DotNetCore.CAP.Internal | |||||
} | } | ||||
} | } | ||||
public Task PublishAsync<T>(string name, T value, string callbackName = null, | |||||
CancellationToken cancellationToken = default) | |||||
{ | |||||
var header = new Dictionary<string, string> | |||||
{ | |||||
{Headers.CallbackName, callbackName} | |||||
}; | |||||
return PublishAsync(name, value, header, cancellationToken); | |||||
} | |||||
public void Publish<T>(string name, T value, string callbackName = null) | |||||
{ | |||||
PublishAsync(name, value, callbackName).GetAwaiter().GetResult(); | |||||
} | |||||
public void Publish<T>(string name, T value, IDictionary<string, string> headers) | |||||
{ | |||||
PublishAsync(name, value, headers).GetAwaiter().GetResult(); | |||||
} | |||||
#region tracing | #region tracing | ||||
private long? TracingBefore(Message message) | private long? TracingBefore(Message message) | ||||
@@ -190,15 +190,16 @@ namespace DotNetCore.CAP.Internal | |||||
if (message.HasException()) | if (message.HasException()) | ||||
{ | { | ||||
var content = StringSerializer.Serialize(message); | var content = StringSerializer.Serialize(message); | ||||
await _storage.StoreReceivedExceptionMessageAsync(name, group, content); | |||||
_storage.StoreReceivedExceptionMessage(name, group, content); | |||||
client.Commit(); | client.Commit(); | ||||
TracingAfter(tracingTimestamp, transportMessage, _serverAddress); | TracingAfter(tracingTimestamp, transportMessage, _serverAddress); | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
var mediumMessage = await _storage.StoreReceivedMessageAsync(name, group, message); | |||||
var mediumMessage = _storage.StoreReceivedMessage(name, group, message); | |||||
mediumMessage.Origin = message; | mediumMessage.Origin = message; | ||||
client.Commit(); | client.Commit(); | ||||
@@ -14,12 +14,11 @@ namespace DotNetCore.CAP.Persistence | |||||
Task ChangeReceiveStateAsync(MediumMessage message, StatusName state); | Task ChangeReceiveStateAsync(MediumMessage message, StatusName state); | ||||
Task<MediumMessage> StoreMessageAsync(string name, Message content, object dbTransaction = null, | |||||
CancellationToken cancellationToken = default); | |||||
MediumMessage StoreMessage(string name, Message content, object dbTransaction = null); | |||||
Task StoreReceivedExceptionMessageAsync(string name, string group, string content); | |||||
void StoreReceivedExceptionMessage(string name, string group, string content); | |||||
Task<MediumMessage> StoreReceivedMessageAsync(string name, string group, Message content); | |||||
MediumMessage StoreReceivedMessage(string name, string group, Message content); | |||||
Task<int> DeleteExpiresAsync(string table, DateTime timeout, int batchCount = 1000, | Task<int> DeleteExpiresAsync(string table, DateTime timeout, int batchCount = 1000, | ||||
CancellationToken token = default); | CancellationToken token = default); | ||||
@@ -68,7 +68,7 @@ namespace DotNetCore.CAP.Processor | |||||
var result = await _sender.SendAsync(message); | var result = await _sender.SendAsync(message); | ||||
if (!result.Succeeded) | if (!result.Succeeded) | ||||
{ | { | ||||
_logger.MessagePublishException(message.Origin.GetId(),result.ToString(),result.Exception); | |||||
_logger.MessagePublishException(message.Origin.GetId(), result.ToString(), result.Exception); | |||||
} | } | ||||
} | } | ||||
catch (Exception ex) | catch (Exception ex) | ||||
@@ -22,7 +22,7 @@ namespace DotNetCore.CAP.MySql.Test | |||||
} | } | ||||
[Fact] | [Fact] | ||||
public async Task StorageMessageTest() | |||||
public void StorageMessageTest() | |||||
{ | { | ||||
var msgId = SnowflakeId.Default().NextId().ToString(); | var msgId = SnowflakeId.Default().NextId().ToString(); | ||||
var header = new Dictionary<string, string>() | var header = new Dictionary<string, string>() | ||||
@@ -31,12 +31,12 @@ namespace DotNetCore.CAP.MySql.Test | |||||
}; | }; | ||||
var message = new Message(header, null); | var message = new Message(header, null); | ||||
var mdMessage = await _storage.StoreMessageAsync("test.name", message); | |||||
var mdMessage = _storage.StoreMessage("test.name", message); | |||||
Assert.NotNull(mdMessage); | Assert.NotNull(mdMessage); | ||||
} | } | ||||
[Fact] | [Fact] | ||||
public async Task StoreReceivedMessageTest() | |||||
public void StoreReceivedMessageTest() | |||||
{ | { | ||||
var msgId = SnowflakeId.Default().NextId().ToString(); | var msgId = SnowflakeId.Default().NextId().ToString(); | ||||
var header = new Dictionary<string, string>() | var header = new Dictionary<string, string>() | ||||
@@ -45,14 +45,14 @@ namespace DotNetCore.CAP.MySql.Test | |||||
}; | }; | ||||
var message = new Message(header, null); | var message = new Message(header, null); | ||||
var mdMessage = await _storage.StoreReceivedMessageAsync("test.name", "test.group", message); | |||||
var mdMessage = _storage.StoreReceivedMessage("test.name", "test.group", message); | |||||
Assert.NotNull(mdMessage); | Assert.NotNull(mdMessage); | ||||
} | } | ||||
[Fact] | [Fact] | ||||
public async Task StoreReceivedExceptionMessageTest() | |||||
public void StoreReceivedExceptionMessageTest() | |||||
{ | { | ||||
await _storage.StoreReceivedExceptionMessageAsync("test.name", "test.group", ""); | |||||
_storage.StoreReceivedExceptionMessage("test.name", "test.group", ""); | |||||
} | } | ||||
[Fact] | [Fact] | ||||
@@ -65,7 +65,7 @@ namespace DotNetCore.CAP.MySql.Test | |||||
}; | }; | ||||
var message = new Message(header, null); | var message = new Message(header, null); | ||||
var mdMessage = await _storage.StoreMessageAsync("test.name", message); | |||||
var mdMessage = _storage.StoreMessage("test.name", message); | |||||
await _storage.ChangePublishStateAsync(mdMessage, StatusName.Succeeded); | await _storage.ChangePublishStateAsync(mdMessage, StatusName.Succeeded); | ||||
} | } | ||||
@@ -80,7 +80,7 @@ namespace DotNetCore.CAP.MySql.Test | |||||
}; | }; | ||||
var message = new Message(header, null); | var message = new Message(header, null); | ||||
var mdMessage = await _storage.StoreMessageAsync("test.name", message); | |||||
var mdMessage = _storage.StoreMessage("test.name", message); | |||||
await _storage.ChangeReceiveStateAsync(mdMessage, StatusName.Succeeded); | await _storage.ChangeReceiveStateAsync(mdMessage, StatusName.Succeeded); | ||||
} | } | ||||