Message queue processing for Canvas synchronization
Canvas synchronization jobs can be issued from 2 sources:
- Directly by an instructor: to synchronize a selected group.
- Scheduled to synchronize all groups.
Therefore it is possible that Canvas synchronization activities are performed on multiple threads simultaneously. Since rate limiting is only monitored in a single threaded manner in components/CanvasIntegration.php
, it is possible that requests over the quota is sent to the Canvas server. To avoid this, a better solution should be specified and implemented based on the message queue design pattern.