Skip to content

Commit 048e427

Browse files
committed
Chunk the calls to ChannelFinder
1 parent 10cbe2f commit 048e427

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

server/recceiver/cfstore.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -709,14 +709,20 @@ def __updateCF__(
709709
_log.debug("Add new alias: {s}".format(s=channels[-1]))
710710
_log.info("Total channels to update: {nChannels} {iocName}".format(nChannels=len(channels), iocName=iocName))
711711
if len(channels) != 0:
712-
client.set(channels=channels)
712+
cf_set_chunked(client, channels, conf.get("findSizeLimit", 10000))
713713
else:
714714
if old_channels and len(old_channels) != 0:
715-
client.set(channels=channels)
715+
cf_set_chunked(client, channels, conf.get("findSizeLimit", 10000))
716716
if processor.cancelled:
717717
raise defer.CancelledError()
718718

719719

720+
def cf_set_chunked(client, channels, chunk_size=10000):
721+
for i in range(0, len(channels), chunk_size):
722+
chunk = channels[i : i + chunk_size]
723+
client.set(channels=chunk)
724+
725+
720726
def create_properties(owner, iocTime, recceiverid, hostName, iocName, iocIP, iocid):
721727
return [
722728
create_property(owner, "hostName", hostName),

0 commit comments

Comments
 (0)