bilibili / bilibili/gengine

nConcurrentMSort 模式下 b 参数影响了规则正常执行

Open
#69 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
2.1k
Forks
281
PR merge metrics
No merged PRs in 30d

Description

在 `nConcurrentMSort` 执行模式下,当 `b = false` 时,即使前 n 个并发执行的规则执行**成功**了,也不会继续执行后续的 `m-1` 条规则了。

例如下面的规则:

```
rule "A1" salience 100
begin
print(@name)
end

rule "A2" salience 100
begin
print(@name)
end

rule "A3" salience 100
begin
print(@name)
end

rule "B1" salience 3
begin
print(@name)
end

rule "B2" salience 2
begin
print(@name)
end
```

在执行 `nConcurrentMSort(3, 2, ruleBuilder, false)` 时,只有 `B1` 执行了,`B2` 没有执行。只有 `b=true` 时才会执行 `B2`

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at the nConcurrentMSort entry point and reproduce the supplied five-rule example with nConcurrentMSort(3, 2, ruleBuilder, false). Trace why successful execution of the first concurrent batch prevents the remaining lower-salience rules from running; done means both B1 and B2 execute when b is false, while existing behavior remains intact.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.