Hi. First of all: thanks for this library. I successfully implemented a couple small things. However, it seems that as the number of asserted facts increases, a MessageObservedException start showing up unexpectedly.
Minimal example:
from durable.lang import *
with ruleset('test'):
@when_all(+m.integer)
def handle_new_fact(c):
pass
for n in range(100000):
assert_fact('test', {'integer': n})
The error:
Traceback (most recent call last):
File "run.py", line 12, in <module>
assert_fact('test', f)
File "C:\Users\kacper\.virtualenvs\fc-env-x_QF5ci4\lib\site-packages\durable\lang.py", line 676, in assert_fact
return get_host().assert_fact(ruleset_name, fact, complete)
File "C:\Users\kacper\.virtualenvs\fc-env-x_QF5ci4\lib\site-packages\durable\engine.py", line 817, in assert_fact
return self._handle_function(rules, rules.assert_fact, fact, complete)
File "C:\Users\kacper\.virtualenvs\fc-env-x_QF5ci4\lib\site-packages\durable\engine.py", line 790, in _handle_function
rules.do_actions(func(args), callback)
File "C:\Users\kacper\.virtualenvs\fc-env-x_QF5ci4\lib\site-packages\durable\engine.py", line 343, in assert_fact
return self._handle_result(durable_rules_engine.assert_fact(self._handle, json.dumps(fact, ensure_ascii=False)), fact)
File "C:\Users\kacper\.virtualenvs\fc-env-x_QF5ci4\lib\site-packages\durable\engine.py", line 330, in _handle_result
raise MessageObservedException(message)
durable.engine.MessageObservedException: {'integer': 46010}
Hi. First of all: thanks for this library. I successfully implemented a couple small things. However, it seems that as the number of asserted facts increases, a
MessageObservedException
start showing up unexpectedly.Minimal example:
The error:
System information: