• Icon: New Feature New Feature
    • Resolution: Duplicate
    • Icon: Minor Minor
    • heavy-job-plugin
    • Jenkins 2.46.3
      workflow-durable-task-step-plugin 2.12

      There is this Heavy Job Plugin, which defines a Job property for FreeStyle Jobs that causes additional  executores to be required for a Job execution. This is useful if Jobs differ widely in the load that they create on the slaves.

      It would be nice to have this also for the node() groovy command with an optional argument, say 'weight', that, if used and larger than 1, causes more executors to be used. The code can largely be leveraged from the Heavy Job Plugin. AsynchroneousExecution exception is your friend.

      Extra cool would it to allow for weight=0 to cause a FlyWeightTask to be created that does not use an executor.

          [JENKINS-45028] Implement build weight support

          Jesse Glick added a comment -

          Duplicate of something long filed.

          Jesse Glick added a comment - Duplicate of something long filed.

          R K added a comment - - edited

          Now that you mentioned and moved it, indeed mostly (except the FlyWeightTask) a duplicate of JENKINS-44846, JENKINS-41940, JENKINS-39975, JENKINS-39963.

          However, I do believe not the HeavyJobPlugin should be updated to support pipelines, but the nodes() command should be extended, for several reasons:

          • There is no maintainer of the Heavy Job Plugin
          • It is not possible to override commands provided by other plugins, so it would avoid unnecessary namespace pollution as the Heavy Job Plugin would have to provide a differently named command
          • If it is done in Heavy Job Plugin, then any changes to the build command would have to be integrated into the Heavy Job Plugin, too, creating unnecessary and continuous work
          • I would consider it kinda essential functionality that just "belong" into the pipeline plugin itself
          • I do like the functionality, but I don't like the Heavy Job Plugin itself, because it spams each configured Job with unneeded configuration items
          • I already have working code (not for the FlyWeightTask idea, though). (I wish I had clearance to share.)

          Would you please consider moving it back to the workflow-durable-task-step-plugin?

          R K added a comment - - edited Now that you mentioned and moved it, indeed mostly (except the FlyWeightTask) a duplicate of JENKINS-44846 , JENKINS-41940 , JENKINS-39975 , JENKINS-39963 . However, I do believe not the HeavyJobPlugin should be updated to support pipelines, but the nodes() command should be extended, for several reasons: There is no maintainer of the Heavy Job Plugin It is not possible to override commands provided by other plugins, so it would avoid unnecessary namespace pollution as the Heavy Job Plugin would have to provide a differently named command If it is done in Heavy Job Plugin, then any changes to the build command would have to be integrated into the Heavy Job Plugin, too, creating unnecessary and continuous work I would consider it kinda essential functionality that just "belong" into the pipeline plugin itself I do like the functionality, but I don't like the Heavy Job Plugin itself, because it spams each configured Job with unneeded configuration items I already have working code (not for the FlyWeightTask idea, though). (I wish I had clearance to share.) Would you please consider moving it back to the workflow-durable-task-step-plugin?

          Jesse Glick added a comment -

          I think it belongs in this plugin, or another plugin if you prefer.

          Jesse Glick added a comment - I think it belongs in this plugin, or another plugin if you prefer.

          R K added a comment -

          > I think it belongs in this plugin, or another plugin if you prefer.

          Why? (After I brought arguments...)

          Do you really want to have "build", "build_with_weight", "build_with_lock" (from Lockable Resource Plugin) and "build_with_weight_and_lock", and if yes, in which plugins would they go?

          R K added a comment - > I think it belongs in this plugin, or another plugin if you prefer. Why? (After I brought arguments...) Do you really want to have "build", "build_with_weight", "build_with_lock" (from Lockable Resource Plugin) and "build_with_weight_and_lock", and if yes, in which plugins would they go?

          Jesse Glick added a comment -

          build is unrelated. That just launches another job. lock already composes. heavyNode seems plausible. Unclear how it would/should work. The trick used for freestyle projects is not applicable.

          Jesse Glick added a comment - build is unrelated. That just launches another job. lock already composes. heavyNode seems plausible. Unclear how it would/should work. The trick used for freestyle projects is not applicable.

            Unassigned Unassigned
            rk R K
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: