Skip to content

Implement a configurable rate limit #2048

@dakhnod

Description

@dakhnod

I am using python-can (more specifically canopen) to send out messages to a bunch or nodes.

Issues seem to arise when I send a lot of packets at the same time, my assumption is that the recipients can not keep up with the frame stream, and thus packets are dropped.

My Idea is to implement some sort of rate limiting, for example by passing messages to a queue and having the library send out all queued messages with an interval inbetween.

Something like

queue = queue.Queue()

while True:
  msg = queue.get() # blocking
  transmit(msg)
  time.sleep(1 / self.max_messages_per_second)

Cheers!

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions