Commit 83064c25 authored by yangxiaodong's avatar yangxiaodong

modify job processor executor step.

parent ea2cf5f9
...@@ -81,68 +81,58 @@ namespace DotNetCore.CAP.RabbitMQ ...@@ -81,68 +81,58 @@ namespace DotNetCore.CAP.RabbitMQ
{ {
var provider = scopedContext.Provider; var provider = scopedContext.Provider;
var messageStore = provider.GetRequiredService<ICapMessageStore>(); var messageStore = provider.GetRequiredService<ICapMessageStore>();
var message = await messageStore.GetNextSentMessageToBeEnqueuedAsync();
try try
{ {
var message = await messageStore.GetNextSentMessageToBeEnqueuedAsync();
if (message != null) if (message != null)
{ {
var sp = Stopwatch.StartNew(); var sp = Stopwatch.StartNew();
message.StatusName = StatusName.Processing; message.StatusName = StatusName.Processing;
await messageStore.UpdateSentMessageAsync(message); await messageStore.UpdateSentMessageAsync(message);
var jobResult = ExecuteJob(message.KeyName, message.Content); ExecuteJob(message.KeyName, message.Content);
sp.Stop(); sp.Stop();
if (jobResult) message.StatusName = StatusName.Succeeded;
{ await messageStore.UpdateSentMessageAsync(message);
await messageStore.RemoveSentMessageAsync(message);
_logger.JobExecuted(sp.Elapsed.TotalSeconds); _logger.JobExecuted(sp.Elapsed.TotalSeconds);
}
} }
} }
catch (Exception) catch (Exception ex)
{ {
_logger.ExceptionOccuredWhileExecutingJob(message.KeyName, ex);
return false; return false;
} }
} }
return true; return true;
} }
private bool ExecuteJob(string topic, string content) private void ExecuteJob(string topic, string content)
{ {
try var factory = new ConnectionFactory()
{ {
var factory = new ConnectionFactory() HostName = _rabbitMQOptions.HostName,
{ UserName = _rabbitMQOptions.UserName,
HostName = _rabbitMQOptions.HostName, Port = _rabbitMQOptions.Port,
UserName = _rabbitMQOptions.UserName, Password = _rabbitMQOptions.Password,
Port = _rabbitMQOptions.Port, VirtualHost = _rabbitMQOptions.VirtualHost,
Password = _rabbitMQOptions.Password, RequestedConnectionTimeout = _rabbitMQOptions.RequestedConnectionTimeout,
VirtualHost = _rabbitMQOptions.VirtualHost, SocketReadTimeout = _rabbitMQOptions.SocketReadTimeout,
RequestedConnectionTimeout = _rabbitMQOptions.RequestedConnectionTimeout, SocketWriteTimeout = _rabbitMQOptions.SocketWriteTimeout
SocketReadTimeout = _rabbitMQOptions.SocketReadTimeout, };
SocketWriteTimeout = _rabbitMQOptions.SocketWriteTimeout
}; using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
var body = Encoding.UTF8.GetBytes(content);
channel.ExchangeDeclare(_rabbitMQOptions.TopicExchangeName, _rabbitMQOptions.EXCHANGE_TYPE);
channel.BasicPublish(exchange: _rabbitMQOptions.TopicExchangeName,
routingKey: topic,
basicProperties: null,
body: body);
return true;
}
}
catch (Exception ex)
{ {
_logger.ExceptionOccuredWhileExecutingJob(topic, ex); var body = Encoding.UTF8.GetBytes(content);
return false;
channel.ExchangeDeclare(_rabbitMQOptions.TopicExchangeName, _rabbitMQOptions.EXCHANGE_TYPE);
channel.BasicPublish(exchange: _rabbitMQOptions.TopicExchangeName,
routingKey: topic,
basicProperties: null,
body: body);
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment