LTI grade passback uses a routine called mass_update which is called whenever content is generated for an environment where $LTIGradeMode is defined. As far as I can tell, this means within a course with grade passback active. That is, if nobody accesses the WeBWorK course, the mass_update all will not ever be triggered for that course.
Also, so far as I know, there is no sense in which a course is open/closed in WeBWorK, short of archiving and deleting the course.
Regarding individual assignments, the update routine goes through every student enrolled in the course and then through every problem set assigned to that user (regardless of dates) and if there is a passback option created for that assignment, it attempts to send the grade to the LMS.
It is possible currently to disable a single course so that the course no longer will trigger the passback by setting the $LTIMassUpdateInterval = -1 in that course's course config file. Or to entirely disable the passback, one might undefine $LTIGradeMode.
Looking forward to hear if anyone already has a script that disables the passback multiple courses at once.
- Brian Walton