Rule Evaluation taking around 10,000-15,000 ms for around 10k rules.
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- javascript
- Ambito
- backend, performance
Direzione di ricerca
Non è indicato alcun file del repository, test o punto di ingresso. Inizia riproducendo la valutazione segnalata con la struttura delle regole fornita e circa 10.000 regole, quindi esegui il profiling del percorso di valutazione e documenta l'operazione limitante; completato significa avere una causa misurata e un miglioramento delle prestazioni validato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
hi @CacheControl , We are using json-rule-engine in our project to get outcome by evaluating around 10k records stored in mongodb.
I am sharing one rule for your reference. We have 10k record like this in our project and evaluating it against facts takes around 10-15 seconds.
{
"conditions": {
"all": [
{
"fact": "customer_delivery_address",
"operator": "equal",
"factLabel": "Customer Delivery Address",
"value": "GB",
"valueSet": [
{
"value": "GB",
"label": "GB"
}
]
},
{
"fact": "customer_tier",
"operator": "equal",
"factLabel": "Customer Tier",
"value": "gold",
"valueSet": [
{
"value": "gold",
"label": "Gold"
}
]
},
{
"fact": "new_customer",
"operator": "isBoolean",
"factLabel": "New Customer",
"value": true,
"valueSet": [
{
"value": true,
"label": true
}
]
},
{
"fact": "order_amount",
"operator": "greaterThan",
"factLabel": "Order Amount",
"value": 2500,
"valueSet": [
{
"value": 2500,
"label": "2500"
}
]
},
{
"fact": "order_count",
"operator": "lessThan",
"factLabel": "Order Count",
"value": 100,
"valueSet": [
{
"value": 100,
"label": "100"
}
]
},
{
"fact": "order_date",
"operator": "isDateGreaterThan",
"factLabel": "Order Date",
"value": "2024-02-01T05:15:44Z",
"valueSet": [
{
"value": "2024-02-01T05:15:44Z",
"label": "2024-02-01T05:15:44Z"
}
]
},
{
"fact": "order_date",
"operator": "isDateLessThan",
"factLabel": "Order Date",
"value": "2024-03-01T05:10:50Z",
"valueSet": [
{
"value": "2024-03-01T05:10:50Z",
"label": "2024-03-01T05:10:50Z"
}
]
},
{
"fact": "order_state",
"operator": "equal",
"factLabel": "Order State",
"value": "confirmed",
"valueSet": [
{
"value": "confirmed",
"label": "Confirmed"
}
]
},
{
"fact": "payment_state",
"operator": "equal",
"factLabel": "Payment State",
"value": "paid",
"valueSet": [
{
"value": "paid",
"label": "Paid"
}
]
},
{
"fact": "customers",
"operator": "equal",
"factLabel": "Customers",
"value": "sample@gmail.com",
"valueSet": [
{
"value": "sample@gmail.com",
"label": "sample@gmail.com"
}
]
}
]
},
"event": {
"type": "categories",
"params": {
"label": "Category",
"value": "Fitness Kit",
"key": "8173dfd1-d8a1-417d-ab78-07dfa6799f59",
"operator": "is",
"source": "resource"
}
}
}
Can you please help me understand why it is taking so much time to evaluate this type of rule. If possible please share solutions for improving performance also.
- Lingua principale
- JavaScript
- Stelle
- 3.1k
- Fork
- 507
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di CacheControl/json-rules-engine
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
CacheControl/json-rules-engine#427 · 1 reazione ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
CacheControl/json-rules-engine#424 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
CacheControl/json-rules-engine#421 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
CacheControl/json-rules-engine#417 · 1 reazione ·
Tutte le issue di CacheControl/json-rules-engine
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Theme loads third-party resources on every page (jsdelivr web font, cdnjs Font Awesome) – GDPR Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
docToolchain/docToolchain#1705 ·
-
Timezone select lists one option per character; duplicate "Failed" reason; shared tracker popover id Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
nightscout/nocturne#1414 ·
-
bug v2
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
modelcontextprotocol/inspector#2458 · 1 commento ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
carbon-design-system/ibm-products#9907 ·