Я хочу запускать все правила асинхронно, чтобы сделать их потокобезопасными.
Когда я выполняю нагрузочный тест, то почему RuleEngine требует так много времени для выполнения всех правил.
NRuleRepository repository = null;
foreach (var rule in rules)
{
repository = new NRuleRepository();
repository.LoadRules(rule.Rule);
var factory = repository.Compile();
var session = factory.CreateSession();
NRuleBody data = null;
foreach (var fact in rule.RuleDataList)
{
data = new NRuleBody();
data.Rule = rule.Rule;
data.RuleData = fact;
session.Insert(data);
}
result += session.Fire();
}
Могу ли я сделать вызов, как показано ниже:
сеанс.FireAsync();
или есть другой вариант запуска нескольких правил, но в асинхронном режиме? и класс NRuleRepository следует повторно инициализировать при каждом запросе?