You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
+"properties.subject LIKE 'Order%' AND region = 'emea'"
905
+
},
906
+
messageHandler: (context, message) => {
907
+
// process the messages
908
+
},
909
+
})
910
+
consumer.start()
911
+
```
912
+
</TabItem>
913
+
841
914
</Tabs>
842
915
843
916
### Error Handling
@@ -1013,6 +1086,27 @@ Filter = #{%% This Bloom filter will be evaluated server-side per chunk at stage
1013
1086
```
1014
1087
</TabItem>
1015
1088
1089
+
<TabItem value="javascript"label="JavaScript">
1090
+
```javascript
1091
+
const consumer=await connection.createConsumer({
1092
+
stream: {
1093
+
name: "my-queue",
1094
+
offset: Offset.first(),
1095
+
filterValues: ["order.created"], // This Bloom filter will be evaluated server-side per chunk (Stage 1).
1096
+
sqlFilter: "p.subject = 'order.created' AND "+
1097
+
"p.creation_time > UTC() - 3600000 AND "+
1098
+
"region IN ('AMER', 'EMEA', 'APJ') AND "+
1099
+
"(h.priority > 4 OR price >= 99.99 OR premium_customer = TRUE)", // This complexSQLfilter expression will be evaluted server-side
1100
+
// per message at stage 2.
1101
+
},
1102
+
messageHandler: (context, message) => {
1103
+
// message processing
1104
+
},
1105
+
})
1106
+
consumer.start()
1107
+
```
1108
+
</TabItem>
1109
+
1016
1110
</Tabs>
1017
1111
1018
1112
If `order.created` events represent only a small percentage of all events, RabbitMQ can filter the stream efficiently because only a small fraction of messages need to be parsed and evaluated in memory.
0 commit comments